tenFM.est: Estimation for Tucker structure Factor Models of...

View source: R/tenFM.R

tenFM.estR Documentation

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)

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. If h0=0, covariance tensor is used.

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).

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.

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

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

tensorTS documentation built on May 29, 2024, 10:23 a.m.