Eigenfunctions of an adjacency matrix of a time series?

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)

Answer

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

Attribution
Source : Link , Question Author : Gavin Simpson , Answer Author : EngrStudent

Leave a Comment