corrDim: Correlation sum, correlation dimension and generalized...

Description Usage Arguments Details Value Author(s) References

Description

Functions for estimating the correlation sum and the correlation dimension of a dynamical system from 1-dimensional time series using Takens' vectors.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  corrDim(time.series, min.embedding.dim = 2,
    max.embedding.dim = 5, time.lag = 1, min.radius,
    max.radius, corr.order = 2, n.points.radius = 5,
    theiler.window = 100, do.plot = TRUE,
    number.boxes = NULL)

  getOrder(x)

  getCorrMatrix(x)

  getRadius(x)

  getEmbeddingDims(x)

  ## S3 method for class 'corrDim'
 print(x, ...)

  ## S3 method for class 'corrDim'
 plot(x, ...)

  ## S3 method for class 'corrDim'
 estimate(x, regression.range = NULL,
    do.plot = FALSE, use.embeddings = NULL, ...)

Arguments

time.series

The original time series from which the correlation sum will be estimated.

min.embedding.dim

Integer denoting the minimum dimension in which we shall embed the time.series (see buildTakens).

max.embedding.dim

Integer denoting the maximum dimension in which we shall embed the time.series (see buildTakens).Thus, we shall estimate the correlation dimension between min.embedding.dim and max.embedding.dim.

time.lag

Integer denoting the number of time steps that will be use to construct the Takens' vectors (see buildTakens).

min.radius

Minimum distance used to compute the correlation sum C(r).

max.radius

Maximum distance used to compute the correlation sum C(r).

corr.order

Order of the generalized correlation Dimension q. It must be greater than 1 (corr.order>1). Default, corr.order=2.

n.points.radius

The number of different radius where we shall estimate. C(r). Thus, we will estimate C(r) in n.points.radius between min.radius and max.radius.

theiler.window

Integer denoting the Theiler window: Two Takens' vectors must be separated by more than theiler.window time steps in order to be considered neighbours. By using a Theiler window, we exclude temporally correlated vectors from our estimations.

do.plot

Logical value. If TRUE (default value), a plot of the correlation sum is shown.

number.boxes

Number of boxes that will be used in the box assisted algorithm (see neighbourSearch). If the user does not specify it, the function uses a proper number of boxes.

...

Additional parameters.

use.embeddings

A numeric vector specifying which embedding dimensions should the estimate function use to compute the correlation dimension.

x

A corrDim object.

regression.range

Vector with 2 components denoting the range where the function will perform linear regression.

Details

The correlation dimension is the most common measure of the fractal dimensionality of a geometrical object embedded in a phase space. In order to estimate the correlation dimension, the correlation sum is defined over the points from the phase space:

C(r) = {number of points(xi,xj) verifying distance(xi,xj)<r}/N^2

However, this estimator is biased when the pairs in the sum are not statistically independent. For example, Taken's vectors that are close in time, are usually close in the phase space due to the non-zero autocorrelation of the original time series. This is solved by using the so-called Theiler window: two Takens' vectors must be separated by, at least, the time steps specified with this window in order to be considered neighbours. By using a Theiler window, we exclude temporally correlated vectors from our estimations.

The correlation dimension is estimated using the slope obtained by performing a linear regression of log10(C(r)) Vs. log10(r). Since this dimension is supposed to be an invariant of the system, it should not depend on the dimension of the Taken's vectors used to estimate it. Thus, the user should plot log10(C(r)) Vs. log10(r) for several embedding dimensions when looking for the correlation dimension and, if for some range log10(C(r)) shows a similar linear behaviour in different embedding dimensions (i.e. parallel slopes), these slopes are an estimate of the correlation dimension. The estimate routine allows the user to get always an estimate of the correlation dimension, but the user must check that there is a linear region in the correlation sum over different dimensions. If such a region does not exist, the estimation should be discarded.

Note that the correlation sum C(r) may be interpreted as: C(r) = <p(r)>, that is: the mean probability of finding a neighbour in a ball of radius r surrounding a point in the phase space. Thus, it is possible to define a generalization of the correlation dimension by writing:

Cq(r) = <p(r)^(q-1)>.

Note that the correlation sum

C(r) = C2(r).

It is possible to determine generalized dimensions Dq using the slope obtained by performing a linear regression of log10(Cq(r))\;Vs.\;(q-1)log10(r). The case q=1 leads to the information dimension, that is treated separately in this package (infDim). The considerations discussed for the correlation dimension estimate are also valid for these generalized dimensions.

Value

A corrDim object that consist of a list with four components named radius, embedding.dims, order and corr.matrix. radius is a vector containing the different radius where we have evaluated C(r). embedding.dims is a vector containing all the embedding dimensions in which we have estimated C(r). order stores the order of the generalized correlation dimension that has been used. Finally, corr.matrix stores all the correlation sums that have been computed. Each row stores the correlation sum for a concrete embedding dimension whereas each colum stores the correlation sum for a specific radius.

The getOrder function returns the order of the correlation sum.

The getCorrMatrix function returns the correlations matrix storing the correlation sums that have been computed for all the embedding dimensions.

The getRadius function returns the radius on which the correlation sum function has been evaluated.

The getEmbeddingDims function returns the embedding dimensions on which the correlation sum function has been evaluated.

The plot function shows two graphics of the correlation integral: a log-log plot of the correlation sum Vs the radius and the local slopes of log10(C(r)) Vs log10(C(r)).

The estimate function estimates the correlation dimension of the corr.dim object by averagin the slopes of the embedding dimensions specified in the use.embeddings parameter. The slopes are determined by performing a linear regression over the radius' range specified in regression.range.If do.plot is TRUE, a graphic of the regression over the data is shown.

Author(s)

Constantino A. Garcia

References

H. Kantz and T. Schreiber: Nonlinear Time series Analysis (Cambridge university press)


nonlinearAnalysis documentation built on May 2, 2019, 6:11 p.m.