mvEWS {mvLSW} | R Documentation |
Multivariate Evolutionary Wavelet Spectrum
Description
Calculates the multivariate Evolutionary Wavelet Spectrum (mvEWS) of a multivariate locally stationary time series.
Usage
mvEWS(X, filter.number = 1, family = "DaubExPhase",
smooth = TRUE, type = "all", kernel.name = "daniell",
kernel.param = floor(sqrt(nrow(X))), optimize = FALSE,
smooth.Jset = NA, bias.correct = TRUE, tol = 1e-10,
verbose = FALSE)
Arguments
X |
A multivariate time series object of class |
filter.number |
Integer number defining the number of
vanishing moments of the wavelet function. By default,
|
family |
Character string specifying the wavelet family.
Only two options are available, either
|
smooth |
Logical, should the mvEWS should be smoothed? |
type |
How should the smoothing be performed? If |
kernel.name |
Name of smoothing kernel to be supplied
to |
kernel.param |
Parameters to be passed to |
optimize |
Logical, should the smoothing be optimized?
If |
smooth.Jset |
Integer vector indicating with levels to be
included in the calculation of the generalized cross-validation
gamma deviance criterion. This argument is only used if
|
bias.correct |
Logical, should the correction be applied to address the bias in the raw mvEWS estimator. |
tol |
Tolerance in applying matrix regularisation
to ensure each mvEWS matrix per location and level to be
strictly positive definite. If |
verbose |
Logical. Controls the printing of messages whist
the computations progress. Set as |
Details
This command evaluates the multivariate evolutionary wavelet spectrum of a multivariate locally stationary wavelet time series. The order of operations are as follows:
Calculate the non-decimated wavelet coefficients \{d^{(p)}_{j,k}\}
for levels j = 1,...,J, locations k = 0,...,T-1 (T=2^J
)
and channels p = 1,...,P(=ncol(X)
). The raw periodogram matrices
are then evaluated by I^{(p,q)}_{j,k} = d^{p}_{j,k}d^{q}_{j,k}
between any channel pair p & q.
The above estimator is inconsistent and so the matrix sequence is
smoothed: \tilde{I}^{(p,q)}_{j,k} = \sum_i W_i I^{(p,q)}_{j,k+i}
.
The kernel weights W_i
are derived from the kernel
command
and satisfy W_i=W_{-i}
and \sum_i W_i = 1
. The optimal
parameter for the smoothing kernel is determined by minimising the
generalized cross-validation gamma deviance criterion
(see Ombao et al., 2005).
The raw wavelet periodogram is also a biased estimator. A correction is subsequently applied to the smoothed estimate as follows:
\hat{S}_{j,k} =\sum_{l=1}^{J} (A^{-1})_{j,l} \hat{I}_{l,k}
Here, A
denotes the wavelet autocorrelation inner product matrix.
If chosen to, the mvEWS matrices at each level and location,
\hat{S}_{j,k}
, is regularised to ensure positive definiteness.
Value
An object of class mvLSW
, invisibly.
References
Taylor, S.A.C., Park, T.A. and Eckley, I. (2019) Multivariate locally stationary wavelet analysis with the mvLSW R package. Journal of statistical software 90(11) pp. 1–16, doi: 10.18637/jss.v090.i11.
Park, T., Eckley, I. and Ombao, H.C. (2014) Estimating time-evolving partial coherence between signals via multivariate locally stationary wavelet processes. Signal Processing, IEEE Transactions on 62(20) pp. 5240-5250.
Ombao, H., von Sachs, R. and Guo, W. (2005) SLEX analysis of multivariate nonstationary time series. Journal of the American Statistical Association 100(470) pp.519-531.
See Also
ts
, wd
, kernel
, as.mvLSW
, ipndacw
.
Examples
## Sample bivariate locally stationary time series
set.seed(100)
X <- matrix(rnorm(2 * 2^8), ncol = 2)
X[1:2^7, 2] <- 3 * (X[1:2^7, 2] + 0.95 * X[1:2^7, 1])
X[-(1:2^7), 2] <- X[-(1:2^7), 2] - 0.95 * X[-(1:2^7), 1]
X[-(1:2^7), 1] <- X[-(1:2^7), 1] * 4
X <- as.ts(X)
## Haar wavelet, apply same smoothing to all levels & optimize
EWS <- mvEWS(X, kernel.name = "daniell", kernel.param = 20,
optimize = TRUE)
summary(EWS)
plot(EWS, style = 2, info = 1)
## Over smoothed EWS
EWS_smooth <- mvEWS(X, filter.number = 10, family = "DaubLeAsymm",
kernel.name = "modified.daniell", kernel.param = c(5, 5),
optimize = FALSE)
summary(EWS_smooth)
plot(EWS_smooth, style = 2, info = 1)