CP_MTS() deals with CP-decomposition for high-dimensional
matrix time series proposed in Chang et al. (2023):
Yt=AXtB′+ϵt,
where Xt=diag(xt,1,…,xt,d) is an d×d
latent process, A and B are , respectively, p×d and q×d unknown constant matrix, and ϵt
is a p×q matrix white noise process. This function aims to estimate the rank
d and the coefficient matrices A and B.
Usage
CP_MTS(
Y,
xi = NULL,
Rank = NULL,
lag.k = 15,
lag.ktilde = 10,
method = c("CP.Direct", "CP.Refined", "CP.Unified")
)
Arguments
Y
A n×p×q data array, where n is the sample size and (p,q)
is the dimension of Yt.
xi
A n×1 vector. If NULL (the default), then a PCA-based ξt
is used [See Section 5.1 in Chang et al. (2023)] to calculate the sample auto-covariance matrix
ΣY,ξ(k).
Rank
A list of the rank d,d1 and d2. Default to NULL.
lag.k
Integer. Time lag K is only used in CP.Refined and CP.Unified to
calculate the nonnegative definte matrices M1 and
M2:
M1=∑k=1KΣY,ξ(k)ΣY,ξ(k)′,
,
M2=∑k=1KΣY,ξ(k)′ΣY,ξ(k),
where ΣY,ξ(k) is the sample auto-covariance of
Yt and ξt at lag k.
lag.ktilde
Integer. Time lag K~ is only used in CP.Unified to calulate the
nonnegative definte matrix M:
M=∑k=1K~ΣZ~(k)Σ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.
Value
An object of class "mtscp" is a list containing the following
components:
A
The estimated p×d left loading matrix A.
B
The estimated q×d right loading matrix B.
f
The estimated latent process (x^1,t,…,x^d,t).
Rank
The estimated rank (d^1,d^2,d^) of the matrix CP-factor model.
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
p = 10
q = 10
n = 400
d = d1 = d2 = 3
data <- DGP.CP(n,p,q,d,d1,d2)
Y = data$Y
res1 <- CP_MTS(Y,method = "CP.Direct")
res2 <- CP_MTS(Y,method = "CP.Refined")
res3 <- CP_MTS(Y,method = "CP.Unified")