ssa - perform Singular Spectrum Analysis on a time series

SYNOPSIS

ssa infile [-s nsig] [-w m] [-c1 -c2] [-t] [-sel clist] [-err2 -err3 cfac] [ -v ]

DESCRIPTION

ssa will perform singular spectrum analysis (SSA) on the time series in infile. ssa computes the eigenvalues and eigenvectors, or Temporal-empirical orthogonal functions (T-EOFS) for the given time series. The Toeplitz matrix of lagged covariances is computed via Burg's (1978) estimate. The algorithm also computes the Temporal Principal Components (T-PCs), derived from the T-EOF's projection onto the original time series. The error bars provided for the eigenvalues are based on the ad hoc estimate of Ghil and Mo (1991), although other estimates are available for comparison. Other user-specified options will perform pairing tests to identify oscillatory components, make a reconstructed time series from the leading T-PCs or user-specified components, and identify trends in the time series data.

Upon successful completion, the following output files are produced.
N.B. All output is written in e16.7 format.

test_ctr.out
contains the standardized time series, i.e., grand mean removed, and normalized by its standard deviation.
test_ev.out
contains the ssa eigenvalues. Column 1 is the eigenvalue index, column 2 the eigenvalue, columns 3 and 4 the low and high ad hoc error bounds, respectively, on each eigenvalue.
test_pct.out
contains the percentage of variance accounted for by each ssa eigenvalue. Column 1 contains the index, column 2 the percentage.
test_eofs.out
contains the user-specified number of leading T-EOFs, all normalized. Column 1 contains the index, columns 2 - nsig the T-EOF values.
test_pcs.out
contains the user-specified number of leading T-PCs. Format is the same as for test_eofs.out.
test_rc.out
contains the reconstructed (filtered) time series. Column 1 is the index, Column 2 the value.
test_pair.out
** Not yet complete ** ; will contain information on the results of oscillatory pairs among the leading ssa components.

infile contains a scalar time series. The data should have a constant sampling rate, i.e., without gaps in the data record. The time series can be one column {x(t)} or two-column {t,x(t)} format.

OPTIONS

-s nsig
The number of "significant" components the user wants to keep in the analysis.
-w mg
The window size to be used in ssa. mg should not exceed 500, and for theoretical purposes, should not exceed 1/3 the number of points in the time series (Vautard et al., 1992)
-c1
Selects Criterion 1 in identifying oscillatory components among the user-specified number of "significant" components. The basis of this criterion is to determine which pairs of components among the potential clusters have nearly equal frequencies at which the reduced Fourier transform is maximum (cf. Vautard et al., 1992)
-c2
Selects Criterion 2 in identifying oscillatory components among the user-specified number of "significant" components. The basis of this criterion is to determine which pairs of components among the potential clusters have a high sum of reduced Fourier transforms (cf. Vautard et al., 1992).
-t
Selects trend test before reconstructing the ssa-filtered time series.
-sel clist
Selects which of the leading components from which to make the reconstructed time series. The components selected must be less than or equal to the number of significant components kept in the first pass of the analysis. The components to be used for reconstruction are specified in clistg, which is a list of component numbers, separated by commas.
-err2
Selects the ad hoc eigenvalue error bars described by Vautard and Ghil (1989).
-err3 cfac
Selects an intermediate formulation for the eigenvalues' error bars, based on the inverse of the lag-one AR coefficient. The user must input a real number cfac after this option, with a value between 1 and 2. Low values of this number will nudge the error bars towards the estimate of Vautard and Ghil (1989), while higher values of cfac will nudge the error bars in the direction of the Ghil and Mo (1991) estimate.
-v
Selects verbose mode, which will send progress reports to stderr [Default runs "silently"].

EXAMPLES

Given a time series in tseries.dat, perform SSA with a window size of 150, keeping the leading 8 eigenvalues, T-EOFs and T-PCs:
ssa tseries.dat -s 8 -w 150
Given a time series in tseries.dat with 1200 points, perform SSA with a window size of 300, keeping the leading 10 eigenvalues, T-EOFs and T-PCs. Apply criterion 1 to identify oscillatory components, and produce a reconstructed (filtered) time series from the leading 10 components with trends removed:
ssa tseries.dat -s 10 -w 300 -c1 -t
Given a time series in tseries.dat, perform SSA with a window size of 60, keeping the leading 8 eigenvalues, T-EOFs and T-PCs. Apply criterion 2 to identify oscillatory components, and produce a reconstructed (filtered) time series from components 1, 2, 5 and 6:
ssa tseries.dat -s 8 -w 60 -c2 -sel '1 2 5 6'

SEE ALSO

spectra(1), spectrum(1), carlo(1)

REFERENCES

Burg, J. P., 1978: A new technique for time series data. Modern Spectrum Analysis, D. G. Childers (ed.), pp. 42-48, IEEE Press, N.Y.

Ghil, M., and K. Mo, 1991: Intraseasonal oscillations in the global atmosphere. Part I: Northern Hemisphere and tropics. J. Atmos. Sci., 48, 752-779.

Vautard, R., and M. Ghil, 1989: Singular spectrum analysis in nonlinear dynamics, with applications to paleoclimatic time series. Physica D, 35, 395-424.

Vautard, R., P. Yiou, and M. Ghil, 1992: Singular Spectrum Analysis: A toolkit for short, noisy, chaotic time series. Physica D, 58, 95-126

Yiou, P., M. Ghil, J. Jouzel, D. Paillard, and R. Vautard, 1994: Nonlinear variability of the climatic system, from singular and power spectra of Late Quaternary records, Clim. Dyn., 9, 371-389.