CCM

Convergent cross mapping between columns : target; and, reverse mapping between target : columns.

Python :

CCM(dataFrame=None, columns='', target='', 
libSizes='', sample=0, E=0, Tp=0, knn=0, tau=-1, 
exclusionRadius=0, seed=0, embedded=False, 
includeData=False, noTime=False, ignoreNan=True,
verbose=False, showPlot=False, returnObject=False)

R :

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

Parameter Type Default Purpose
dataFrame pyEDM: pandas DataFrame
rEDM: data.frame
None Input DataFrame
columns string or [] "" Column name(s) for library
target string "" Prediction target column name
libSizes string "" CCM library sizes
sample int 0 CCM number of random samples
E int 0 Data dimension
Tp int 0 Prediction Interval
knn int 0 Number nearest neighbors (if 0 then set as E+1)
tau int -1 Embedding time shift (time series rows)
exclusionRadius int 0 Prediction vector exclusion radius
seed unsigned 0 RNG seed, 0 = random seed
embedded bool False Is data an embedding? If False, embed to E
includeData bool False Include output statistics on all predictions
noTime bool False Do not require first data column of time or index
random bool True CCM use random samples?
parameterList bool False Include parameter dictionary in return
verbose bool False Echo messages
showPlot bool False Plot results (pyEDM, rEDM)
pathIn string "./" Input data file path
dataFile string "" Data file name
pathOut string "./" Output file path
predictFile string "" Prediction output file


Refer to the parameters table for general parameter definitions.

Notes :
Normally, one column and one target are specified. The column time series is time-delay embedded to dimension E, then cross mapped with the target time series. In a separate thread, the target time series is embedded to E and cross mapped against the column acting as the "target".

If there are multiple columns and embedded is false, each column is time-delay embedded to dimension E creating an N-columns * E dimensional "mixed" embedding. If embedded is true, no time-delay embedding is done, creating a multivariate embedding of the speficied columns. The same logic applies if multiple target are specified for the "reverse" mapping. If embedded is false, each target is time-delay embedded to dimension E creating an N-target * E dimensional "mixed" embedding cross mapped to only the first column as the cross map target. If embedded is true, no time-delay embedding is done, creating a multivariate embedding of the specified target(s).

libSizes is a list values or string of whitespace or comma separated library sizes. If the string has 3 values, and, if the third value is less than the second value, the three values are interpreted as a sequence generator specifying "start stop increment" row values, i.e. "10 80 10" will evaluate library sizes from 10 to 80 in increments of 10.

Version 1.x: If random is true, sample observations are randomly selected from the subset of each library size. If random is false, sample is ignored and contiguous library rows up to the current library size are used. Note this is not convergent cross mapping.

If seed=0 a random seed is generated for the random number generator. Otherwise, seed is used to initialise the random number generator.

Returns :
If includeData is False: returns DataFrame with 3 columns.
The first column is LibSize, the second and third columns are Pearson correlation coefficients for column : target and target : column cross mapping.

If includeData is True: returns a list with the above DataFrame and a DataFrame of all Simplex projection statistics. If parameterList = True, a dictionary of parameters is added.

Version 2.x: If returnObject = True returns the CCM class object with all data and variables.