Learn R Programming

HDTSA (version 1.0.4)

DGP.CP: Data generate process of matrix CP-factor model

Description

DGP.CP() function generate the matrix time series described 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.

Usage

DGP.CP(n, p, q, d1, d2, d)

Value

A list containing the following components:

Y

A \(n \times p \times q\) data array of \(\bf Y_t\).

S

A \(n \times p \times q\) data array of \(\bf S_t = \bf A \bf X_t \bf B'\).

A

A \(p \times d\) coefficient matrix.

B

A \(q \times d\) coefficient matrix.

X

A \(n \times d \times d\) data array of \(\bf X_t\).

P

A \(p \times d_1\) orthogonal matrix such that \(\bf A = \bf P \bf U\).

Q

A \(q \times d_2\) orthogonal matrix such that \(\bf B = \bf Q \bf V\).

U

A \(d_1 \times d\) matrix such that \(\bf A = \bf P \bf U\).

V

A \(d_2 \times d\) matrix such that \(\bf B = \bf Q \bf V\).

W

A \(d_1 d_2 \times d\) matrix such that \(\bf W = (\bf v_1 \otimes \bf u_1,\ldots,\bf v_d \otimes \bf u_d)\).

Ws

A \(d_1 d_2 \times d\) matrix. An orthogonal basis of \(\bf W\).

Xmat

A \(n \times d\) data matrix of \(diag(\bf X_t)\).

Smat

A \(n \times pq\) data matrix of \(vec(\bf S_t)\).

Arguments

n

Integer. Sample size of \(\bf Y_t\), \(t=1,\ldots,n\).

p

Integer. Number of rows of \(\bf Y_t\).

q

Integer. Number of columns of \(\bf Y_t\).

d1

Integer. Rank of \(\bf A\).

d2

Integer. Rank of \(\bf B\).

d

Integer. Number of columns of \(\bf A\) and \(\bf B\).

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.

See Also

CP_MTS.

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

Run the code above in your browser using DataLab