Learn R Programming

HDTSA (version 1.0.4)

CP_MTS: Estimation of matrix CP-factor model

Description

CP_MTS() deals with CP-decomposition for high-dimensional matrix time series proposed in Chang et al. (2023):$${\bf{Y}}_t = {\bf A \bf X}_t{\bf B}^{'} + {\boldsymbol{\epsilon}}_t, $$ where \({\bf X}_t = diag(x_{t,1},\ldots,x_{t,d})\) is an \(d \times d\) latent process, \({\bf A}\) and \({\bf B}\) are , respectively, \(p \times d\) and \(q \times d\) unknown constant matrix, and \( {\boldsymbol{\epsilon}}_t \) is a \(p \times q\) matrix white noise process. This function aims to estimate the rank \(d\) and the coefficient matrices \({\bf A}\) and \({\bf B}\).

Usage

CP_MTS(
  Y,
  xi = NULL,
  Rank = NULL,
  lag.k = 15,
  lag.ktilde = 10,
  method = c("CP.Direct", "CP.Refined", "CP.Unified")
)

Value

An object of class "mtscp" is a list containing the following components:

A

The estimated \(p \times d\) left loading matrix \(\widehat{\bf A}\).

B

The estimated \(q \times d\) right loading matrix \(\widehat{\bf B}\).

f

The estimated latent process \((\hat{x}_{1,t},\ldots,\hat{x}_{d,t})\).

Rank

The estimated rank \((\hat{d}_1,\hat{d}_2,\hat{d})\) of the matrix CP-factor model.

Arguments

Y

A \(n \times p \times q\) data array, where \(n\) is the sample size and \((p,q)\) is the dimension of \({\bf Y}_t\).

xi

A \(n \times 1\) vector. If NULL (the default), then a PCA-based \(\xi_{t}\) is used [See Section 5.1 in Chang et al. (2023)] to calculate the sample auto-covariance matrix \(\widehat{\bf \Sigma}_{\bf Y, \xi}(k)\).

Rank

A list of the rank \(d\),\(d_1\) and \(d_2\). Default to NULL.

lag.k

Integer. Time lag \(K\) is only used in CP.Refined and CP.Unified to calculate the nonnegative definte matrices \(\widehat{\mathbf{M}}_1\) and \(\widehat{\mathbf{M}}_2\): $$\widehat{\mathbf{M}}_1\ =\ \sum_{k=1}^{K}\widehat{\mathbf{\Sigma}}_{\bf Y, \xi}(k)\widehat{\mathbf{\Sigma}}_{\bf Y, \xi}(k)', $$, $$\widehat{\mathbf{M}}_2\ =\ \sum_{k=1}^{K}\widehat{\mathbf{\Sigma}}_{\bf Y, \xi}(k)'\widehat{\mathbf{\Sigma}}_{\bf Y, \xi}(k), $$ where \(\widehat{\mathbf{\Sigma}}_{\bf Y, \xi}(k)\) is the sample auto-covariance of \( {\bf Y}_t\) and \(\xi_t\) at lag \(k\).

lag.ktilde

Integer. Time lag \(\tilde K\) is only used in CP.Unified to calulate the nonnegative definte matrix \(\widehat{\mathbf{M}}\): $$\widehat{\mathbf{M}} \ =\ \sum_{k=1}^{\tilde K}\widehat{\mathbf{\Sigma}}_{\tilde{\bf Z}}(k)\widehat{\mathbf{\Sigma}}_{\tilde{\bf Z}}(k)'. $$

method

Method to use: CP.Direct and CP.Refined, Chang et al.(2023)'s direct and refined estimators; CP.Unified, Chang et al.(2024+)'s unified estimation procedure.

References

Chang, J., He, J., Yang, L. and Yao, Q.(2023). Modelling matrix time series via a tensor CP-decomposition. Journal of the Royal Statistical Society Series B: Statistical Methodology, Vol. 85(1), pp.127--148.

Chang, J., Du, Y., Huang, G. and Yao, Q.(2024+). On the Identification and Unified Estimation Procedure for the Matrix CP-factor Model, Working paper.

Examples

Run this code
p = 10
q = 10
n = 400
d = d1 = d2 = 3
data <- DGP.CP(n,p,q,d1,d2,d)
Y = data$Y
res1 <- CP_MTS(Y,method = "CP.Direct")
res2 <- CP_MTS(Y,method = "CP.Refined")
res3 <- CP_MTS(Y,method = "CP.Unified")

Run the code above in your browser using DataLab