Learn R Programming

Rssa (version 1.1)

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 hmatr plot(x, col = rev(heat.colors(256)), main = "Heterogeneity Matrix", xlab = "", ylab = "", ...)

Value

object of type 'hmatr'

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

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