mww_wav_eval {multiwave} | R Documentation |
multivariate wavelet Whittle estimation for data as wavelet coefficients
Description
Evaluates the multivariate wavelet Whittle criterion at a given long-memory parameter vector d
for the already wavelet decomposed data.
Usage
mww_wav_eval(d, xwav, index, LU = NULL)
Arguments
d |
vector of long-memory parameters (dimension should match dimension of x). |
xwav |
wavelet coefficients matrix (with scales in rows and variables in columns). |
index |
vector containing the largest index of each
band, i.e. for |
LU |
bivariate vector (optional) containing
|
Details
L
is fixing the lower limit of wavelet scales. L
can be increased to avoid finest frequencies that can be corrupted by the presence of high frequency phenomena.
U
is fixing the upper limit of wavelet scales. U
can be decreased when highest frequencies have to be discarded.
Value
multivariate wavelet Whittle criterion.
Author(s)
S. Achard and I. Gannaz
References
E. Moulines, F. Roueff, M. S. Taqqu (2009) A wavelet whittle estimator of the memory parameter of a nonstationary Gaussian time series. Annals of statistics, vol. 36, N. 4, pages 1925-1956
S. Achard, I. Gannaz (2016)
Multivariate wavelet Whittle estimation in long-range dependence. Journal of Time Series Analysis, Vol 37, N. 4, pages 476-512. http://arxiv.org/abs/1412.0391
.
S. Achard, I Gannaz (2019) Wavelet-Based and Fourier-Based Multivariate Whittle Estimation: multiwave. Journal of Statistical Software, Vol 89, N. 6, pages 1-31.
See Also
mww
, mww_cov_eval
,mww_wav
,mww_eval
,mww_wav_cov_eval
Examples
### Simulation of ARFIMA(0,d,0)
rho <- 0.4
cov <- matrix(c(1,rho,rho,1),2,2)
d <- c(0.4,0.2)
J <- 9
N <- 2^J
resp <- fivarma(N, d, cov_matrix=cov)
x <- resp$x
long_run_cov <- resp$long_run_cov
## wavelet coefficients definition
res_filter <- scaling_filter('Daubechies',8);
filter <- res_filter$h
LU <- c(2,11)
### wavelet decomposition
if(is.matrix(x)){
N <- dim(x)[1]
k <- dim(x)[2]
}else{
N <- length(x)
k <- 1
}
x <- as.matrix(x,dim=c(N,k))
## Wavelet decomposition
xwav <- matrix(0,N,k)
for(j in 1:k){
xx <- x[,j]
resw <- DWTexact(xx,filter)
xwav_temp <- resw$dwt
index <- resw$indmaxband
Jmax <- resw$Jmax
xwav[1:index[Jmax],j] <- xwav_temp;
}
## we free some memory
new_xwav <- matrix(0,min(index[Jmax],N),k)
if(index[Jmax]<N){
new_xwav[(1:(index[Jmax])),] <- xwav[(1:(index[Jmax])),]
}
xwav <- new_xwav
index <- c(0,index)
res_mww <- mww_wav_eval(d,xwav,index,LU)
res_d <- optim(rep(0,k),mww_wav_eval,xwav=xwav,index=index,LU=LU,
method='Nelder-Mead',lower=-Inf,upper=Inf)$par