Learn R Programming

multiwave (version 1.0)

mww_wav_cov_eval: multivariate wavelet Whittle estimation of the long-run covariance matrix

Description

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.

Usage

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 $\code{dwt}(k)$ for $k \in [\code{indmaxband}(j-1)+1,\code{indmaxband}(j)]$ and for $j=1$, $\code{dwt}(k)$ for $k \in [1,\code{indmaxband}(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.

Value

Long-run covariance matrix estimation.

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.

References

S. Achard, I. Gannaz (2014) Multivariate wavelet Whittle estimation in long-range dependence. arXiv, http://arxiv.org/abs/1412.0391

See Also

mww, mww_eval,mww_wav,mww_wav_eval,mww_cov_eval

Examples

Run this code
### 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 <- varfima(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
M <- res_filter$M
alpha <- res_filter$alpha

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)

##### Compute the wavelet functions 
res_psi <- psi_hat_exact(filter,Jmax)
psih<-res_psi$psih
grid<-res_psi$grid

res_mww <- mww_wav_cov_eval(d,xwav,index, psih, grid,LU)

Run the code above in your browser using DataLab