Learn R Programming

rEDM (version 1.8.2)

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 happens only 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, pathOut = "./", 
  predictFile = "", E = 0, Tp = 0, knn = 0, tau = -1,
  exclusionRadius = 0, columns = "", target = "", 
  libSizes = "", sample = 0, random = TRUE, replacement = FALSE, seed = 0, 
  includeData = FALSE, verbose = FALSE, showPlot = FALSE)

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.

pathOut

path for predictFile containing output predictions.

predictFile

output file name.

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.

replacement

logical to specify sampling with replacement.

seed

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

includeData

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

verbose

logical to produce additional console reporting.

showPlot

logical to plot results.

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.

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
# NOT RUN {
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