owcor {Rssa} | R Documentation |
Calculate generalized (oblique) W-correlation matrix
Description
Function calculates oblique W-correlation matrix for the series.
Usage
owcor(x, groups, ..., cache = TRUE)
Arguments
x |
the input object of ‘ossa’ class |
groups |
list of numeric vectors, indices of elementary components used for reconstruction. The elementary components must belong to the current OSSA component set |
... |
further arguments passed to |
cache |
logical, if 'TRUE' then intermediate results will be cached in 'ssa' object. |
Details
Matrix of oblique weighted correlations will be computed. For two series, oblique W-covariation is defined as follows:
%
\mathrm{owcov}(F_1, F_2) =
\langle L^\dagger X_1 (R^\dagger)^\mathrm{T},
L^\dagger X_2 (R^\dagger)^\mathrm{T} \rangle_\mathrm{F},
where
X_1, X_2
denotes the trajectory matrices of series F_1, F_2
correspondingly, L = [U_{b_1} : ... : U_{b_r}], R = [V_{b_1}: ... V_{b_r}]
,
where \\\{b_1, \dots, b_r\\\}
is current OSSA component set
(see description of ‘ossa.set’ field of ‘ossa’ object),
'\langle \cdot, \cdot
\rangle_\mathrm{F}
' denotes Frobenius matrix inner product
and '\dagger
' denotes Moore-Penrose pseudo-inverse matrix.
And oblique W-correlation is defined the following way:
%
\mathrm{owcor}(F_1, F_2) = \frac{\mathrm{owcov}(F_1, F_2)}
{\sqrt{\mathrm{owcov}(F_1, F_1) \cdot \mathrm{owcov(F_2, F_2)}}}
Oblique W-correlation is an OSSA analogue of W-correlation, that is, a measure of series separability. If I-OSSA procedure separates series exactly, their oblique W-correlation will be equal to zero.
Value
Object of class ‘wcor.matrix’
References
Golyandina N. and Shlemov A. (2015): Variations of Singular Spectrum Analysis for separability improvement: non-orthogonal decompositions of time series, Statistics and Its Interface. Vol.8, No 3, P.277-294. https://arxiv.org/abs/1308.4022
See Also
Rssa
for an overview of the package, as well as,
wcor
,
iossa
,
fossa
.
Examples
# Separate two non-separable sines
N <- 150
L <- 70
omega1 <- 0.06
omega2 <- 0.065
F <- 4*sin(2*pi*omega1 * (1:N)) + sin(2*pi*omega2 * (1:N))
s <- ssa(F, L)
ios <- iossa(s, nested.groups = list(1:2, 3:4), kappa = NULL, maxIter = 200, tol = 1e-8)
p.wcor <- plot(wcor(ios, groups = list(1:2, 3:4)))
p.owcor <- plot(owcor(ios, groups = list(1:2, 3:4)), main = "OW-correlation matrix")
print(p.wcor, split = c(1, 1, 2, 1), more = TRUE)
print(p.owcor, split = c(2, 1, 2, 1))