Learn R Programming

Rssa (version 0.11)

hmatr: Calculate the heterogeneity matrix.

Description

Function calculates the heterogeneity matrix for the one-dimensional series.

Usage

hmatr(F, ...,
      B = N %/% 4, T = N %/% 4, L = B %/% 2,
      neig = 10)

## S3 method for class 'hmatr': plot(x, col = rev(heat.colors(256)), main = "Heterogeneity Matrix", xlab = "", ylab = "", ...)

Arguments

F
the series to be checked for structural changes
...
further arguments passed to ssa routine for hmatr call or image for plot.hmatr call
B
integer, length of base series
T
integer, length of tested series
L
integer, window length for the decomposition of the base series
neig
integer, number of eigentriples to consider for calculating projections
x
'hmatr' object
col
color palette to use
main
plot title
xlab,ylab
labels for 'x' and 'y' axis

Value

  • object of type 'hmatr'

Details

The heterogeneity matrix (H-matrix) provides a consistent view on the structural discrepancy between different parts of the series. Denote by $F_{i,j}$ the subseries of F of the form: $F_{i,j} = \left(f_{i},\dots,f_{j}\right)$. Fix two integers $B > L$ and $T \geq L$. Let these integers denote the lengths of base and test subseries, respectively. Introduce the H-matrix $G_{B,T}$ with the elements $g_{ij}$ as follows: $$g_{ij} = g(F_{i,i+B}, F_{j,j+T}),$$ for $i=1,\dots,N-B+1$ and $j=1,\dots,N-T+1$, that is we split the series F into subseries of lengths B and T and calculate the heterogeneity index between all possible pairs of the subseries.

The heterogeneity index $g(F^{(1)}, F^{(2)})$ between the series $F^{(1)}$ and $F^{(2)}$ can be calculated as follows: let $U_{j}^{(1)}$, $j=1,\dots,L$ denote the eigenvectors of the SVD of the trajectory matrix of the series $F^{(1)}$. Fix I to be a subset of $\left{1,\dots,L\right}$ and denote $\mathcal{L}^{(1)} = \mathrm{span}\,\left(U_{i},\, i \in I\right)$. Denote by $X^{(2)}_{1},\dots,X^{(2)}_{K_{2}}$ ($K_{2} = N_{2} - L + 1$) the L-lagged vectors of the series $F^{(2)}$. Now define $$g(F^{(1)},F^{(2)}) = \frac{\sum_{j=1}^{K_{2}}{\mathrm{dist}\,^{2}\left(X^{(2)}_{j}, \mathcal{L}^{(1)}\right)}} {\sum_{j=1}^{K_{2}}{\left\|X^{(2)}_{j}\right\|^{2}}},$$ where $\mathrm{dist}\,(X,\mathcal{L})$ denotes the Euclidean distance between the vector X and the subspace $\mathcal{L}$. One can easily see that $0 \leq g \leq 1$.

References

Golyandina, N., Nekrutkin, V. and Zhigljavsky, A. (2001): Analysis of Time Series Structure: SSA and related techniques. Chapman and Hall/CRC. ISBN 1584881941

See Also

ssa

Examples

Run this code
# Calculate H-matrix for co2 series
h <- hmatr(co2, L = 24)
# Plot the matrix
plot(h)

Run the code above in your browser using DataLab