Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

Consider a simple time series:

> tp <- seq_len(10)
> tp
 [1]  1  2  3  4  5  6  7  8  9 10

we can compute an adjacency matrix for this time series representing the temporal links between samples. In computing this matrix we add an imaginary site at time 0 and the link between this observation and the first actual observation at time 1 is known as link 0. Between time 1 and time 2, the link is link 1 and so on. Because time is a directional process, sites are connected to (affected by) links that are "upstream" of the site. Hence every site is connected to link 0, but link 9 is only connected to site 10; it occurs temporally after each site except site 10. The adjacency matrix thus defined is created as follows:

> adjmat <- matrix(0, ncol = length(tp), nrow = length(tp))
> adjmat[lower.tri(adjmat, diag = TRUE)] <- 1
> rownames(adjmat) <- paste("Site", seq_along(tp))
> colnames(adjmat) <- paste("Link", seq_along(tp)-1)
> adjmat
        Link 0 Link 1 Link 2 Link 3 Link 4 Link 5 Link 6 Link 7
Site 1       1      0      0      0      0      0      0      0
Site 2       1      1      0      0      0      0      0      0
Site 3       1      1      1      0      0      0      0      0
Site 4       1      1      1      1      0      0      0      0
Site 5       1      1      1      1      1      0      0      0
Site 6       1      1      1      1      1      1      0      0
Site 7       1      1      1      1      1      1      1      0
Site 8       1      1      1      1      1      1      1      1
Site 9       1      1      1      1      1      1      1      1
Site 10      1      1      1      1      1      1      1      1
        Link 8 Link 9
Site 1       0      0
Site 2       0      0
Site 3       0      0
Site 4       0      0
Site 5       0      0
Site 6       0      0
Site 7       0      0
Site 8       0      0
Site 9       1      0
Site 10      1      1

The SVD provides a decomposition of this matrix into Eigenfunctions of variation as different temporal scales. The figure below shows the extracted functions (from SVD$u)

> SVD <- svd(adjmat, nu = length(tp), nv = 0)

Eigenfunctions

The eigenfunctions are periodic components at various temporal scales. Trying tp <- seq_len(25) (or longer) shows this better than the shorter example I showed above.

Does this sort of analysis have a proper name in statistics? It sounds similar to Singular Spectrum Analysis but that is a decomposition of an embedded time series (a matrix whose columns are lagged versions of the time series).

Background: I came up with this idea by modifying an idea from spatial ecology called Asymmetric Eigenvector Maps (AEM) which considers a spatial process with known direction and forming an adjacency matrix between a spatial array of samples that contains 1s where a sample can be connected to a link and a 0 where it can't, under the constraint that links can only be connected "downstream" - hence the asymmetric nature of the analysis. What I described above is a one-dimensional version of the AEM method. A reprint of the AEM method can be found here if you are interested.

The figure was produced with:

layout(matrix(1:12, ncol = 3, nrow = 4))
op <- par(mar = c(3,4,1,1))
apply(SVD$u, 2, function(x, t) plot(t, x, type = "l", xlab = "", ylab = ""),
      t = tp)
par(op)
layout(1)
share|improve this question
    
What is the analysis? Do you mean, "is there any use for these eigenfunctions?" The eigenfunctions of "most" matrices oscillate, with higher numbers oscillating faster; but what do they tell you? –  petrelharp Sep 9 '13 at 9:45
    
@petrelharp No, I know what the eigenfunctions can be used for (description of spatial or temporal pattern in multivariate data for one), but I was wondering if this approach had been developed elsewhere, under some name that I was not aware so I could read up more about this approach. –  Gavin Simpson Sep 9 '13 at 14:53

1 Answer 1

This looks like a variation on "Principal Component Analysis". http://mathworld.wolfram.com/PrincipalComponentAnalysis.html

In structural analysis the eigenvalues of a system are used to look at linear deformations, places where superposition is still valid. The method is called "Modal Analysis". http://macl.caeds.eng.uml.edu/macl-pa/modes/modal2.html

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.