Singular Spectrum Analysis Demo With VBA
-
Upload
peter-urbani -
Category
Documents
-
view
1.024 -
download
11
description
Transcript of Singular Spectrum Analysis Demo With VBA
Singular Spectrum Analysis ( SSA ) Worked Example by Peter Urbani
Original Data Example as per http://strijov.com/sources/demo_ssa_forecast.php#21 3.00 X2 2.00 3.0 2.0 1.0 2.03 1.00 2.0 1.0 2.0 3.04 2.00 1.0 2.0 3.0 2.05 3.00 2.0 3.0 2.0 1.06 2.00 3.0 2.0 1.0 2.07 1.008 2.00
Mean 2.00 C = X * X'### ### ### 16.00000 18.00000### ### ### 14.00000 16.00000
N = 8 ### ### ### 16.00000 14.00000L = 5 ### ### ### 18.00000 16.00000K = 4 ### ### ### 16.00000 18.00000M = 3No.Coeff 2 S
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!U#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
U1 U2 U3 U4### ### ### -0.754356 ### ### ### ### ### ### ### ### ### ### ### ###### ### ### 0.156349 ### ### ### ### ### ### ### ### ### ### ### ###### ### ### -0.156349 ### ### ### ### ### ### ### ### ### ### ### ###### ### ### 0.156349 ### ### ### ### ### ### ### ### ### ### ### ###### ### ### 0.598007 ### ### ### ### ### ### ### ### ### ### ### ###
X - hat1 = U1 * U1' * X X - hat2 = U2 * U2' * X X - hat3 = U3 * U3' * X X - hat4 = U4 * U4' * X2.26 2.04 1.82 2.04 0.74 -0.04 -0.82 -0.04 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.002.20 1.99 1.77 1.99 -0.20 0.01 0.23 0.01 0.00 -1.00 0.00 1.00 0.00 0.00 0.00 0.002.14 1.94 1.73 1.94 -1.14 0.06 1.27 0.06 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.002.20 1.99 1.77 1.99 -0.20 0.01 0.23 0.01 0.00 1.00 0.00 -1.00 0.00 0.00 0.00 0.002.26 2.04 1.82 2.04 0.74 -0.04 -0.82 -0.04 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.002.20 1.99 1.77 1.99 -0.20 0.01 0.23 0.01 0.00 -1.00 0.00 1.00 0.00 0.00 0.00 0.002.14 1.94 1.73 1.94 -1.14 0.06 1.27 0.06 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.002.20 1.99 1.77 1.99 -0.20 0.01 0.23 0.01 0.00 1.00 0.00 -1.00 0.00 0.00 0.00 0.00
ReconstructedCheck X = X1 + X2 + X3 + X4
1 3.00 = 2.26 + 0.74 + 0.00 + 0.001 2.00 = 2.12 + -0.12 + 0.00 + 0.001 1.00 = 1.98 + -0.65 + -0.33 + 0.001 2.00 = 1.99 + 0.01 + 0.00 + 0.001 3.00 = 1.99 + 0.51 + 0.50 + 0.001 2.00 = 1.99 + 0.01 + 0.00 + 0.001 1.00 = 1.99 + -0.49 + -0.50 + 0.001 2.00 = 1.99 + 0.01 + 0.00 + 0.00
3.00 = 1.90 + 0.43 + 0.67 + 0.002.00 = 1.85 + 0.15 + 0.00 + 0.001.00 = 1.99 + 0.01 + -1.00 + 0.00
C Mat = =MMULT( Xmat,TRANSPOSE( Xmat))S Mat = =SVD_D( C Mat )U Mat = =SVD_U( C Mat )X - Hat = =(MMULT(MMULT( U Mat,TRANSPOSE( U Mat )), X Mat ))Forecast =MMULT(TRANSPOSE(M - 1 prior datapoints),(MMULT(L - 1 eienvectors,TRANSPOSE(Last row eigenvectors))/(1-SUMSQ(Last row eigenvectors))))X1,X2,X3 etc are the diagonal averages of the above X-Hat Matrices
1 2 3 4 5 6 7 8 9 10 110.00
0.50
1.00
1.50
2.00
2.50
3.00
3.50
Reconstructed Forecast
L
K
Example as per
F1 3 1.00 X2 2 0.00 #VALUE! #VALUE! #VALUE! #VALUE!3 1 -1.00 #VALUE! #VALUE! #VALUE! #VALUE!4 2 0.00 #VALUE! #VALUE! #VALUE! #VALUE!5 3 1.00 #VALUE! #VALUE! #VALUE! #VALUE!6 2 0.00 #VALUE! #VALUE! #VALUE! #VALUE!7 1 -1.008 2 0.00
Mean 2.00 C = X * X'#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
N = 8 Data points #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!L = 5 Window length #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!K = 4 No of lagged vector #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!M = 7 forecast lengthNo of Coef 6 Alpha Coeffs S
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
U#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
U4 < Using first 4 eigenvectors only#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!
X - hat = U4 * U4' * X#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! Note Forecast Step uses entire matrix >#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!
X =#VALUE!
http://strijov.com/sources/demo_ssa_forecast.php#2
#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!
One step from X and Un matrices#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!
Some other examples to try-1 3-1 20 10 21 31 20 1
http://strijov.com/sources/demo_ssa_forecast.php#2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 150
0.5
1
1.5
2
2.5
3
3.5
Reconstructed Forecast
Peter Urbani:Note Vector forecast can be performed on either the original or reconstructed data or each of the subcomponent X=Hat matrices
0 2
< Using just first 4 eigenvectors 1 at a time - Note could also be groups so long as contiguous and in descending eigenvalue orderU1#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
X - hat1 = U1 * U1' * X X - hat2 = U2 * U2' * X#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
Note Forecast Step uses entire matrix > #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
Check X = X1 + X2#VALUE! #VALUE! = #VALUE! + #VALUE!
#VALUE! #VALUE! = #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! + #VALUE!
#VALUE! = #VALUE! + #VALUE!#VALUE! = #VALUE! + #VALUE!#VALUE! = #VALUE! + #VALUE!
#VALUE! #VALUE! = #VALUE! #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! #VALUE! + #VALUE!#VALUE! #VALUE! = #VALUE! #VALUE! + #VALUE!
#VALUE!#VALUE!#VALUE!
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE!#VALUE!#VALUE!
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 150
0.5
1
1.5
2
2.5
3
3.5
Reconstructed Forecast
#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE!
< Using just first 4 eigenvectors 1 at a time - Note could also be groups so long as contiguous and in descending eigenvalue orderU2 U3
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
X - hat2 = U2 * U2' * X X - hat3 = U3 * U3' * X#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
+ X3 ++ #VALUE! +
+ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! +
+ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! ++ #VALUE! +
#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE! #VALUE!
#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!
#VALUE!#VALUE!#VALUE!#VALUE!
U4#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!
X - hat4 = U4 * U4' * X#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!
X4#VALUE!
#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!
#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!
#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!#VALUE! #VALUE! #VALUE! #VALUE!
#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!#VALUE!
#VALUE!#VALUE!#VALUE!#VALUE!
Online SVD CalculatorOnline SVD CalculatorOpen source SVD VBAOpen source SVD VBAOpen source SVD VBA
Various SSA software implementations in Matlab and RSSA ExamplesSingular Spectrum Analysis - MultiTaper Method (SSA-MTM) Toolkit'Caterpillar'-SSACaterpillar'-SSA ExamplesCommercial Excel Add-In XLCyclesCommercial Excel Add-In IpredictCommercial Excel Add-In ApaLibNETR implemantation of SSA
Separation and Reconstruction in Singular Spectrum AnalysisOn the choice of parameters in Singular Spectrum AnalysisSingular Spectrum Analysis: Methodology and Comparison Empirical Orthogonal Functions and Statistical Weather PredictionVarious papers on SSAOld and New Spectral Techniques for Economic Time SeriesA Review of Some Modern Approaches to the Problem of Trend ExtractioAnalysis of Time Series Structure: SSA and related techniquesSingular Spectrum Analysis: A New Tool in Time Series Analysis Various papers on SSAChange-Point Detection in Time SeriesComparison of recurrent and vector forecastingOn the choice of a linear reccurent formula for the SSA forecastThe “Caterpillar”-SSA approach to time series analysis and its automatizaPredicting Daily Exchange Rate with Singular Spectrum Analysis
Source:LAPACKNISTMATRIX.XLARNCALGLIB
Theodore AlexandrovVadim StrijovMichael GhilNina GolyandinaNina GolyandinaRick Gibbs
Andreas SteinerAnton Korobeynikov
Atikur KhanNina GolyandinaHossein HassaniEdward LorenzAnatoly ZhigljavskyLisa SellaTheodore AlexandrovGolyandina, Nekrutin and ZhigljavskyElsner and TsonisTheodore AlexandrovValentina MoskvinaAndrey PepelyshevAndrey PepelyshevAlexandrov and GolyandinaHassani, Soofi and Zhigljavsky
http://www.bluebit.gr/matrix-calculator/calculate.aspxhttp://metamerist.com/excanvas/example23a.htmhttp://digilander.libero.it/foxes/matrix.ziphttp://www.rnfc.org/rhapsody/math/http://www.alglib.net/matrixops/general/svd.php
http://www.math.uni-bremen.de/~theodore/ssawiki/pmwiki.php?n=Main.Softwarehttp://strijov.com/sources/demo_ssa_forecast.php#2http://www.atmos.ucla.edu/tcd/ssa/http://www.gistatgroup.com/cat/programs.htmlhttp://www.gistatgroup.com/cat/examples/ex_1_8.htmlhttp://technical-analysis-addins.com/singular-spectrum-analysis.phphttp://www.ipredict.it/Methods/PrincipalComponentAnalysis.aspxhttp://www.apalibnet.com/XLL.aspxhttp://cran.r-project.org/web/packages/Rssa/index.html
http://www.buseco.monash.edu.au/ebs/pubs/wpapers/2011/wp23-11.pdfhttp://www.citebase.org/fulltext?format=application%2Fpdf&identifier=oai%3AarXiv.org%3A1005.4374http://mpra.ub.uni-muenchen.de/4991/2/MPRA_paper_4991.pdfhttp://www.o3d.org/abracco/Atlantic/Lorenz1956.pdfhttp://www.cf.ac.uk/maths/subsites/zhigljavskyaa/publics.htmlhttp://www.de.unito.it/web/member/segreteria/WP/2008/9_WP_Sella.pdfhttp://www.census.gov/srd/papers/pdf/rrs2008-03.pdfhttp://www.amazon.com/dp/1584881941http://www.amazon.com/Singular-Spectrum-Analysis-Tool-Time/dp/1441932666/ref=sr_1_1?s=books&ie=UTF8&qid=1348533996&sr=1-1&keywords=singular+spectrum+analysishttp://www.pdmi.ras.ru/~theo/autossa/english/publications.htmhttp://www.cardiff.ac.uk/maths/subsites/stats/changepoint/http://ssa.cf.ac.uk/pepelyshev/pepelyshev_ssa_forecast.pdfhttp://ssa.cf.ac.uk/pepelyshev/pepelyshev_choice_LRF.pdfhttp://www.pdmi.ras.ru/~theo/autossa/files/AutoSSA-slides-EN.pdfhttp://slb.cf.ac.uk/maths/subsites/zhigljavskyaa/pdfs/SSA/exchange%20rates.pdf
The trajectory matrix X is the restricted (Hankel) circulant of which we require the SVD, X = U * S * V'.But since X usually has more columns than rows, we cannot form the SVD directly.IF we have an SVD routine to hand, we can simply compute the SVD of X' as X' = V * S * U'
If we only have a simple symmetric eigensolver. In which case, we form the (minimal) covariance matrix C = X * X' which is SQUARE and SYMMETRIC. The important point is SQUARE. We can now write C = E * L * E^(-1) and in fact, due to symmetry, C = E * L * E'.
Recalling that C = X * X' = E L E' = (U * S * V ' ) * (V * S * U') = U * S^2 * U' we can see by comparison of coefficients that U = E and S = sqrt(L) (element-wise) and that now computing V is trivial by simple matrix algebra. So we have the SVD cheaply "by the back door".
http://www.math.uni-bremen.de/~theodore/ssawiki/pmwiki.php?n=Main.Software
http://technical-analysis-addins.com/singular-spectrum-analysis.phphttp://www.ipredict.it/Methods/PrincipalComponentAnalysis.aspx
http://www.buseco.monash.edu.au/ebs/pubs/wpapers/2011/wp23-11.pdfhttp://www.citebase.org/fulltext?format=application%2Fpdf&identifier=oai%3AarXiv.org%3A1005.4374http://mpra.ub.uni-muenchen.de/4991/2/MPRA_paper_4991.pdf
http://www.cf.ac.uk/maths/subsites/zhigljavskyaa/publics.htmlhttp://www.de.unito.it/web/member/segreteria/WP/2008/9_WP_Sella.pdf
http://www.amazon.com/Singular-Spectrum-Analysis-Tool-Time/dp/1441932666/ref=sr_1_1?s=books&ie=UTF8&qid=1348533996&sr=1-1&keywords=singular+spectrum+analysishttp://www.pdmi.ras.ru/~theo/autossa/english/publications.htm
http://ssa.cf.ac.uk/pepelyshev/pepelyshev_ssa_forecast.pdfhttp://ssa.cf.ac.uk/pepelyshev/pepelyshev_choice_LRF.pdfhttp://www.pdmi.ras.ru/~theo/autossa/files/AutoSSA-slides-EN.pdfhttp://slb.cf.ac.uk/maths/subsites/zhigljavskyaa/pdfs/SSA/exchange%20rates.pdf
The trajectory matrix X is the restricted (Hankel) circulant of which we require the SVD, X = U * S * V'.But since X usually has more columns than rows, we cannot form the SVD directly.IF we have an SVD routine to hand, we can simply compute the SVD of X' as X' = V * S * U'
If we only have a simple symmetric eigensolver. In which case, we form the (minimal) covariance matrix C = X * X' which is SQUARE and SYMMETRIC. The important point is SQUARE. We can now write C = E * L * E^(-1) and in fact, due to symmetry, C = E * L * E'.
Recalling that C = X * X' = E L E' = (U * S * V ' ) * (V * S * U') = U * S^2 * U' we can see by comparison of coefficients that U = E and S = sqrt(L) (element-wise) and that now computing V is trivial by simple matrix algebra. So we have the SVD cheaply "by the back door".
http://www.amazon.com/Singular-Spectrum-Analysis-Tool-Time/dp/1441932666/ref=sr_1_1?s=books&ie=UTF8&qid=1348533996&sr=1-1&keywords=singular+spectrum+analysis