Learn R Programming

rEDM (version 1.14.3)

CCM: Convergent cross mapping using simplex projection

Description

The state-space of a multivariate dynamical system (not a purely stochastic one) encodes coherent phase-space variable trajectories. If enough information is available, one can infer the presence or absence of cross-variable interactions associated with causal links between variables. CCM measures the extent to which states of variable Y can reliably estimate states of variable X. This can happen if X is causally influencing Y.

If cross-variable state predictability converges as more state-space information is provided, this indicates a causal link. CCM performs this cross-variable mapping using Simplex, with convergence assessed across a range of observational library sizes as described in Sugihara et al. 2012.

Usage

CCM(pathIn = "./", dataFile = "", dataFrame = NULL,
  E = 0, Tp = 0, knn = 0, tau = -1,
  exclusionRadius = 0, columns = "", target = "", libSizes = "",
  sample = 0, random = TRUE, replacement = FALSE, seed = 0, 
  embedded = FALSE, includeData = FALSE, parameterList = FALSE,
  verbose = FALSE, showPlot = FALSE)

Value

A data.frame with 3 columns. The first column is LibSize

specifying the subsampled library size. Columns 2 and 3 report Pearson correlation coefficients for the prediction of X from Y, and Y from X.

if includeData = TRUE a named list with the following data.frames data.frame Combo_rho columns:

LibMeansCCM mean correlations for each library size
CCM1_PredictStatForward cross map prediction statistics
CCM1_PredictionsForward cross map prediction values
CCM2_PredictStatReverse cross map prediction statistics
CCM2_PredictionsReverse cross map prediction values

If includeData = TRUE and parameterList = TRUE a named list "parameters" is added.

Arguments

pathIn

path to dataFile.

dataFile

.csv format data file name. The first column must be a time index or time values. The first row must be column names.

dataFrame

input data.frame. The first column must be a time index or time values. The columns must be named.

E

embedding dimension.

Tp

prediction horizon (number of time column rows).

knn

number of nearest neighbors. If knn=0, knn is set to E+1.

tau

lag of time delay embedding specified as number of time column rows.

exclusionRadius

excludes vectors from the search space of nearest neighbors if their relative time index is within exclusionRadius.

columns

string of whitespace separated column name(s) in the input data used to create the library.

target

column name in the input data used for prediction.

libSizes

string of 3 whitespace separated integer values specifying the intial library size, the final library size, and the library size increment.

sample

integer specifying the number of random samples to draw at each library size evaluation.

random

logical to specify random (TRUE) or sequential library sampling. Note random = FALSE is not convergent cross mapping.

replacement

logical to specify sampling with replacement. Note replacement = TRUE is not convergent cross mapping.

seed

integer specifying the random sampler seed. If seed=0 then a random seed is generated.

embedded

logical specifying if the input data are embedded.

includeData

logical to include statistics and predictions for every prediction in the ensemble.

parameterList

logical to add list of invoked parameters.

verbose

logical to produce additional console reporting.

showPlot

logical to plot results.

Details

CCM computes the X:Y and Y:X cross-mappings in parallel using threads.

References

Sugihara G., May R., Ye H., Hsieh C., Deyle E., Fogarty M., Munch S., 2012. Detecting Causality in Complex Ecosystems. Science 338:496-500.

Examples

Run this code
data(sardine_anchovy_sst)
df = CCM( dataFrame = sardine_anchovy_sst, E = 3, Tp = 0, columns = "anchovy",
target = "np_sst", libSizes = "10 70 10", sample = 100 )

Run the code above in your browser using DataLab