VISUAL RECURRENCE ANALYSIS

Recurrence Plots (RPs) were first described by J.P. Eckmann, S. O. Kamphorst and D.Ruelle in "Recurrence plots of dynamical systems" in 1987.

( J.P. Eckmann, S. Oliffson Kamphorst and D. Ruelle,
Recurrence plots of dynamical systems, 1987, Europhys. Lett., Vol. 4, No. 9, pp. 973-977 )

RP is a relatively new technique for the qualitative assessment of time series. With RP, one can graphically detect hidden patterns and structural changes in data or see similarities in patterns across the time series under study.

The fundamental assumption underlying the idea of the recurrence plots is that an observable time series (a sequence of observations) is the realization of some dynamical process, the interaction of the relevant variables over time. For example, the weather is a highly complex system with a large number of factors that influence its dynamics, and a sequence of daily temperature readings could be considered a realization of that dynamical system. Another example is the stock market, -- its behavior is determined by many factors, such as the economic and political environment, investors expectations and individual traders’ decisions, etc. But all we typically have is the realization of the interaction between all these factors over time, -- say, the daily closing prices for the Dow Jones Industrial Average. In both examples, we have a multidimensional dynamical system and a one-dimensional output (series of scalar observations). Can we infer any characteristics of the original system and predict its behavior in the future given the history of its output?

As remarkable as it seems, it has been proven mathematically that one can recreate a topologically equivalent picture of the original multidimensional system behavior by using the time series of a single observable variable (F. Takens, 1981. “Detecting strange attractors in turbulence”). The basic idea is that the effect of all the other (unobserved) variables is already reflected in the series of the observed output. Furthermore, the rules that govern the behavior of the original system can be recovered from its output.

In VRA, a one-dimensional time series from a data file is expanded into a higher-dimensional space, in which the dynamic of the underlying generator takes place. This is done using a technique called “delayed coordinate embedding”, which recreates a phase space portrait of the dynamical system under study from a single (scalar) time series. To expand a one-dimensional signal into an M-dimensional phase space, one substitutes each observation in the original signal X(t) with vector

y(i) = {x(i), x(i - d), x(i - 2d), … , x(i - (m-1)d},
where
i is the time index,
m is the embedding dimension
d is the time delay.

As a result, we have a series of vectors:
Y = {y(1), y(2), y(3), …, y(N-(m-1)d)},
where
N is the length of the original series.

The idea of such reconstruction is to capture the original system states at each time we have an observation of that system output. Each unknown state S(t) at time t is approximated by a vector of delayed coordinates

Y(t) = { x(t), x(t - d), x(t - 2d), … , x(t - (m-1)d }

For example, let the observable time series be the weekly closing prices for the Dow Jones Industrial Average as follows:

9/25/98 8029
10/2/98 7785
10/9/98 7900
10/16/98 8417
10/23/98 8452
10/30/98 8592
11/6/98 8975
… …

Then for d=1 and m=3, the reconstructed vectors are defined as:

Y(10/9/98) = {7900, 7785, 8029}
Y(10/16/98) = {8417, 7900, 7785}

Y(10/23/98) = {8452, 8417, 7900}
and so on.


Once the dynamical system is reconstructed in a manner outlined above, a recurrence plot can be used to show which vectors in the reconstructed space are close and far from each other. More specifically, VRA calculates the (Euclidean) distances between all pairs of vectors and codes them as colors. Essentially, RP is a color-coded matrix, where each [i][j]th entry is calculated as the distance between vectors Y(i) and Y(j) in the reconstructed series. Returning to the last example, the Euclidean distance between vectors Y(10/9/98) and Y(10/16/98) is

Distance(Y(10/9/98), Y(10/16/98)) = [(7900-8417)^2 + (7785-7900)^2 + (8029-7785)^2]^1/2 = 583

After the distances between all vectors are calculated, they are mapped to colors from the pre-defined color map and are displayed as colored pixels in their corresponding places. A recurrence plot is essentially a graphical representation of a correlation integral. The important distinction (and an advantage of the recurrence plots) is that the recurrence plots, unlike the correlation integrals, preserve the temporal dependence in the time series, in addition to the spatial dependence.

Here is an example of a recurrence plot constructed from the weekly closing prices of the Dow Industrial Average index (file DowJones.dat included with VRA).

For the actual analysis and meaningful results, it is probably a good idea to use a stationary time series. Also, to make RP more meaningful, the color mapping should be meaningful, too. For example, “hot” colors (yellow, red, and orange) can be associated with small distances between the vectors, while “cold” colors (blue, black) may be used to show large distances. This way one can visualize and study the motion of the system trajectories and infer some characteristics of the dynamical system that generated the time series. Here is how the recurrence plot of the chaotic signal (Rossler attractor, file Rossler.dat included with VRA) looks like:

The global structure and local instability are the forces at work in the Rossler attractor, as can be seen from the recurrence plot above. Compare it with the recurrence plot of a strictly periodic signal (simple sine wave, file Sine.dat included with VRA):

 

For random signals, the uniform (even) distribution of colors over the entire RP is expected. The more deterministic the signal is, the more structured the recurrence plot will be. Compare the recurrence plots above with that of the white noise time series (file WhiteNoise.dat included with VRA):


VISUAL RECURRENCE ANALYSIS HOME

BACK to the Main HOME Page