Learn R Programming

multiwave (version 1.0)

mww_wav: multivariate wavelet Whittle estimation for data as wavelet coefficients

Description

Computes the multivariate wavelet Whittle estimation of the long-memory parameter vector d and the long-run covariance matrix for the already wavelet decomposed data.

Usage

mww_wav(xwav, index, psih, grid_K, LU = NULL)

Arguments

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. (Default values are set to L=1, and U=Jmax.)

Value

d
estimation of the vector of long-memory parameters.
cov
estimation of the long-run covariance matrix.

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_eval, mww_cov_eval,mww,mww_wav_eval,mww_wav_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

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(xwav,index, psih, grid,LU)


Run the code above in your browser using DataLab