multivariate wavelet Whittle estimation of the long-run covariance matrix
multivariate wavelet Whittle estimation of the long-run covariance matrix
Computes the multivariate wavelet Whittle estimation of the long-run covariance matrix given the long-memory parameter vector d for the already wavelet decomposed data.
mww_wav_cov_eval(d, xwav, index,psih,grid_K, LU)
Arguments
d: vector of long-memory parameters (dimension should match dimension of xwav).
xwav: wavelet coefficients matrix (with scales in rows and variables in columns).
index: vector containing the largest index of each band, i.e. for j>1 the wavelet coefficients of scale j are \codedwt(k) for k∈[\codeindmaxband(j−1)+1,\codeindmaxband(j)] and for j=1, \codedwt(k) for k∈[1,\codeindmaxband(1)].
psih: the Fourier transform of the wavelet mother at values grid_K
grid_K: the grid for the approximation of the integral in K
LU: bivariate vector (optional) containing L, the lowest resolution in wavelet decomposition U, the maximal resolution in wavelet decomposition.
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.
Returns
Long-run covariance matrix estimation.
References
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.
Author(s)
S. Achard and I. Gannaz
See Also
mww, mww_eval,mww_wav,mww_wav_eval,mww_cov_eval
Examples
### Simulation of ARFIMA(0,d,0)rho<-0.4cov <- matrix(c(1,rho,rho,1),2,2)d<-c(0.4,0.2)J <-9N <-2^J
resp <- fivarma(N, d, cov_matrix=cov)x <- resp$x
long_run_cov <- resp$long_run_cov
## wavelet coefficients definitionres_filter <- scaling_filter('Daubechies',8);filter <- res_filter$h
M <- res_filter$M
alpha <- res_filter$alpha
LU <- c(2,11)### wavelet decompositionif(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 in1: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)##### Compute the wavelet functions res_psi <- psi_hat_exact(filter,10)psih<-res_psi$psih
grid<-res_psi$grid
res_mww <- mww_wav_cov_eval(d,xwav,index, psih, grid,LU)