Learn R Programming

tensorTS (version 1.0.1)

tenFM.est: Estimation for Tucker structure Factor Models of Tensor-Valued Time Series

Description

Estimation function for Tucker structure factor models of tensor-valued time series. Two unfolding methods of the auto-covariance tensor, Time series Outer-Product Unfolding Procedure (TOPUP), Time series Inner-Product Unfolding Procedure (TIPUP), are included, as determined by the value of method.

Usage

tenFM.est(x,r,h0=1,method='TIPUP',iter=TRUE,tol=1e-4,maxiter=100)

Value

returns a list containing the following:

Ft

estimated factor processes of dimension \(T \times r_1 \times r_2 \times \cdots \times r_k\).

Ft.all

Summation of factor processes over time, of dimension \(r_1,r_2,\cdots,r_k\).

Q

a list of estimated factor loading matrices \(Q_1,Q_2,\cdots,Q_K\).

x.hat

fitted signal tensor, of dimension \(T \times d_1 \times d_2 \times \cdots \times d_k\).

niter

number of iterations.

fnorm.resid

Frobenius norm of residuals, divide the Frobenius norm of the original tensor.

Arguments

x

\(T \times d_1 \times \cdots \times d_K\) tensor-valued time series.

r

input rank of factor tensor.

h0

the number of lags used in auto-covariance tensor.

method

character string, specifying the type of the estimation method to be used.

"TIPUP",

TIPUP method.

"TOPUP",

TOPUP method.

iter

boolean, specifying using an iterative approach or an non-iterative approach.

tol

tolerance in terms of the Frobenius norm.

maxiter

maximum number of iterations if error stays above tol.

Details

Tensor factor model with Tucker structure has the following form, $$X_t = F_t \times_{1} A_1 \times_{2} \cdots \times_{K} A_k + E_t,$$ where \(A_k\) is the deterministic loading matrix of size \(d_k \times r_k\) and \(r_k \ll d_k\), the core tensor \(F_t\) itself is a latent tensor factor process of dimension \(r_1 \times \cdots \times r_K\), and the idiosyncratic noise tensor \(E_t\) is uncorrelated (white) across time. Two estimation approaches, named TOPUP and TIPUP, are studied. Time series Outer-Product Unfolding Procedure (TOPUP) are based on $$ {\rm{TOPUP}}_{k}(X_{1:T}) = \left(\sum_{t=h+1}^T \frac{{\rm{mat}}_{k}( X_{t-h}) \otimes {\rm{mat}}_k(X_t)} {T-h}, \ h=1,...,h_0 \right),$$ where \(h_0\) is a predetermined positive integer, \(\otimes\) is tensor product. Note that \( {\rm{TOPUP}}_k(\cdot)\) is a function mapping a tensor time series to an order-5 tensor. Time series Inner-Product Unfolding Procedure (TIPUP) replaces the tensor product in TOPUP with the inner product: $$ {\rm{TIPUP}}_k(X_{1:T})={\rm{mat}}_1\left(\sum_{t=h+1}^T \frac{{\rm{mat}}_k(X_{t-h}) {\rm{mat}}_k^\top(X_t)} {T-h}, \ h=1,...,h_0 \right).$$

References

Chen, Rong, Dan Yang, and Cun-Hui Zhang. "Factor models for high-dimensional tensor time series." Journal of the American Statistical Association (2021): 1-59.

Han, Yuefeng, Rong Chen, Dan Yang, and Cun-Hui Zhang. "Tensor factor model estimation by iterative projection." arXiv preprint arXiv:2006.02611 (2020).

Examples

Run this code
set.seed(333)
dims <- c(16,18,20) # dimensions of tensor time series
r <- c(3,3,3)  # dimensions of factor series
Ft <- tenAR.sim(t=100, dim=r, R=1, P=1, rho=0.9, cov='iid')
lambda <- sqrt(prod(dims))
x <- tenFM.sim(Ft,dims=dims,lambda=lambda,A=NULL,cov='iid') # generate t*dims tensor time series
result <- tenFM.est(x,r,h0=1,iter=TRUE,method='TIPUP')  # Estimation
Ft <- result$Ft

Run the code above in your browser using DataLab