Coint function

Identifying the cointegration rank of nonstationary vector time series

Identifying the cointegration rank of nonstationary vector time series

Coint() deals with cointegration analysis for high-dimensional vector time series proposed in Zhang, Robinson and Yao (2019). Consider the model: [REMOVE_ME]yt=Axt,[REMOVEME2] {\bf y}_t = {\bf Ax}_t\,, [REMOVE_ME_2]

where A{\bf A} is a p×pp \times p unknown and invertible constant matrix, xt=(xt,1,xt,2){\bf x}_t = ({\bf x}'_{t,1}, {\bf x}'_{t,2})' is a latent p×1p \times 1 process, xt,2{\bf x}_{t,2} is an r×1r \times 1 I(0)I(0) process, xt,1{\bf x}_{t,1} is a process with nonstationary components, and no linear combination of xt,1{\bf x}_{t,1} is I(0)I(0). This function aims to estimate the cointegration rank rr and the invertible constant matrix A{\bf A}.

Coint( Y, lag.k = 5, type = c("acf", "urtest", "both"), c0 = 0.3, m = 20, alpha = 0.01 )

Arguments

  • Y: An n×pn \times p data matrix Y=(y1,,yn){\bf Y} = ({\bf y}_1, \dots , {\bf y}_n )', where nn is the number of the observations of the p×1p \times 1 time series {yt}t=1n\{{\bf y}_t\}_{t=1}^n.
  • lag.k: The time lag KK used to calculate the nonnegative definte matrix W^y\hat{{\bf W}}_y:
W^y =sumk=0KΣ^y(k)Σ^y(k), \hat{\mathbf{W}}_y\ =\\sum_{k=0}^{K}\hat{\mathbf{\Sigma}}_y(k)\hat{\mathbf{\Sigma}}_y(k)'\,,
where $\hat{\bf \Sigma}_y(k)$ is the sample autocovariance of $ {\bf y}_t$ at lag $k$. The default is 5.
  • type: The method used to identify the cointegration rank. Available options include: "acf" (the default) for the method based on the sample autocorrelations, "urtest" for the method based on the unit root tests, and "both" to apply these two methods. See Section 2.3 of Zhang, Robinson and Yao (2019) and 'Details' for more information.
  • c0: The prescribed constant c0c_0 involved in the method based on the sample correlations, which is used when type = "acf" or type = "both". See Section 2.3 of Zhang, Robinson and Yao (2019) and 'Details' for more information. The default is 0.3.
  • m: The prescribed constant mm involved in the method based on the sample correlations, which is used when type = "acf" or type = "both". See Section 2.3 of Zhang, Robinson and Yao (2019) and 'Details' for more information. The default is 20.
  • alpha: The significance level α\alpha of the unit root tests, which is used when type = "urtest" or type = "both". See 'Details'. The default is 0.01.

Returns

An object of class "coint", which contains the following components: - A: The estimated A^\hat{\bf A}.

  • coint_rank: The estimated cointegration rank r^\hat{r}.

  • lag.k: The time lag used in function.

  • method: A string indicating which method is used to identify the cointegration rank.

Description

Coint() deals with cointegration analysis for high-dimensional vector time series proposed in Zhang, Robinson and Yao (2019). Consider the model:

yt=Axt, {\bf y}_t = {\bf Ax}_t\,,

where A{\bf A} is a p×pp \times p unknown and invertible constant matrix, xt=(xt,1,xt,2){\bf x}_t = ({\bf x}'_{t,1}, {\bf x}'_{t,2})' is a latent p×1p \times 1 process, xt,2{\bf x}_{t,2} is an r×1r \times 1 I(0)I(0) process, xt,1{\bf x}_{t,1} is a process with nonstationary components, and no linear combination of xt,1{\bf x}_{t,1} is I(0)I(0). This function aims to estimate the cointegration rank rr and the invertible constant matrix A{\bf A}.

Details

Write x^t=A^yt(x^t1,,x^tp)\hat{\bf x}_t=\hat{\bf A}'{\bf y}_t\equiv (\hat{x}_t^1,\ldots,\hat{x}_t^p)'. When type = "acf", Coint() estimates rr by

r^=i=1p1{Si(m)m<c0} \hat{r}=\sum_{i=1}^{p}1\bigg\{\frac{S_i(m)}{m}<c_0 \bigg\}

for some constant c0(0,1)c_0\in (0,1) and some large constant mm, where Si(m)S_i(m) is the sum of the sample autocorrelations of x^ti\hat{x}^{i}_{t} over lags 1 to mm, which is specified in Section 2.3 of Zhang, Robinson and Yao (2019).

When type = "urtest", Coint() estimates rr by unit root tests. For i=1,,pi= 1,\ldots, p, consider the null hypothesis

H0,i:x^tpi+1I(0). H_{0,i}:\hat{x}_t^{p-i+1} \sim I(0)\,.

The estimation procedure for rr can be implemented as follows:

Step 1. Start with i=1i=1. Perform the unit root test proposed in Chang, Cheng and Yao (2021) for H0,iH_{0,i}.

Step 2. If the null hypothesis is not rejected at the significance level α\alpha, increment ii by 1 and repeat Step 1. Otherwise, stop the procedure and denote the value of ii at termination as i0i_0. The cointegration rank is then estimated as r^=i01\hat{r}=i_0-1.

Examples

# Example 1 (Example 1 in Zhang, Robinson and Yao (2019)) ## Generate yt p <- 10 n <- 1000 r <- 3 d <- 1 X <- mat.or.vec(p, n) X[1,] <- arima.sim(n-d, model = list(order=c(0, d, 0))) for(i in 2:3)X[i,] <- rnorm(n) for(i in 4:(r+1)) X[i, ] <- arima.sim(model = list(ar = 0.5), n) for(i in (r+2):p) X[i, ] <- arima.sim(n = (n-d), model = list(order=c(1, d, 1), ar=0.6, ma=0.8)) M1 <- matrix(c(1, 1, 0, 1/2, 0, 1, 0, 1, 0), ncol = 3, byrow = TRUE) A <- matrix(runif(p*p, -3, 3), ncol = p) A[1:3,1:3] <- M1 Y <- t(A%*%X) Coint(Y, type = "both")

References

Chang, J., Cheng, G., & Yao, Q. (2022). Testing for unit roots based on sample autocovariances. Biometrika, 109 , 543--550. tools:::Rd_expr_doi("doi:10.1093/biomet/asab034") .

Zhang, R., Robinson, P., & Yao, Q. (2019). Identifying cointegration by eigenanalysis. Journal of the American Statistical Association, 114 , 916--927. tools:::Rd_expr_doi("doi:10.1080/01621459.2018.1458620") .

  • Maintainer: Chen Lin
  • License: GPL-3
  • Last published: 2025-01-28