tenFM.rank: Rank Determination for Tensor Factor Models with Tucker...

View source: R/tenFM.R

tenFM.rankR Documentation

Rank Determination for Tensor Factor Models with Tucker Structure

Description

Function for rank determination of tensor factor models with Tucker Structure. 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. Different penalty functions for the information criterion (IC) and the eigen ratio criterion (ER) can be used, which should be specified by the value of rank and penalty. The information criterion resembles BIC in the vector factor model literature. And the eigen ratio criterion is similar to the eigenvalue ratio based methods in the vector factor model literature.

Usage

tenFM.rank(x,r=NULL,h0=1,rank='IC',method='TIPUP',inputr=FALSE,iter=TRUE,penalty=1,
delta1=0,tol=1e-4,maxiter=100)

Arguments

x

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

r

initial guess of the rank of factor tensor.

h0

the number of lags used in auto-covariance tensor. If h0=0, covariance tensor is used.

rank

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

"IC",

information criterion.

"ER",

eigen ratio criterion.

method

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

"TIPUP",

TIPUP method.

"TOPUP",

TOPUP method.

inputr

boolean, if TRUE, always use initial guess rank r in each iteration; if FLASE, the rank will be updated in each iteration.

iter

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

penalty

takes value in 1,2,3,4,5, decides which penalty function to use for each tensor mode k. Here \nu is a tuning parameter defined in the argument "delta1", and d=\prod_{i=1}^{K} d_k .

When

rank= 'IC':

if penalty=1,

g_1= \frac{h_0 d^{2-2\nu}}{T}\log(\frac{dT}{d+T});

if penalty=2,

g_2= h_0 d^{2-2\nu}(\frac{1}{T}+\frac{1}{d})\log(\frac{dT}{d+T});

if penalty=3,

g_3= \frac{h_0 d^{2-2\nu}}{T} \log(\min{(d,T)});

if penalty=4,

g_4= h_0 d^{2-2\nu}(\frac{1}{T}+\frac{1}{d})\log(\min{(d,T)});

if penalty=5,

g_5= h_0 d^{2-2\nu}(\frac{1}{T}+\frac{1}{d})\log(\min{(d_k,T)}).

When

rank= 'ER':

if penalty=1,

h_1= c_0 h_0;

if penalty=2,

h_2= \frac{h_0 d^2}{T^2};

if penalty=3,

h_3= \frac{h_0 d^2}{T^2 d_k^2};

if penalty=4,

h_4= \frac{h_0 d^2}{T^2 d_k^2} + \frac{h_0 d_k^2}{T^2};

if penalty=5,

h_5= \frac{h_0 d^2}{T^2 d_k^2} + \frac{h_0 dd_k^2}{T^2}.

delta1

weakest factor strength, a tuning parameter used for IC method only

tol

tolerance in terms of the Frobenius norm.

maxiter

maximum number of iterations if error stays above tol.

Details

Let W be a p\times p symmetric and non-negative definite matrix and \widehat{W} be its sample version, {\hat\lambda}_j be the eigenvalues of \widehat{W} such that {\hat\lambda}_1\geq {\hat\lambda}_2 \geq \cdots \hat{\lambda}_p. The rank determination methods using the information criterion ("IC") and the eigen ratio criterion ("ER") are defined as follows:

IC(\widehat{W}) = \mathrm{argmin}_{0\leq m \leq m^{*}} \left\{ \sum_{j=m+1}^{p} {\hat\lambda}_j + mg(\widehat{W}) \right\},

ER(\widehat{W}) = \mathrm{argmin}_{0\leq m \leq m^{*}} \left\{ \frac{{\hat\lambda}_{m+1}+h(\widehat{W})}{ {\hat\lambda}_m +h(\widehat{W})} \right\},

where m^{*} is a predefined upper bound, g and h are some appropriate positive penalty functions. We have provided 5 choices for g and h; see more details in the argument "penalty". For non-iterative TOPUP and TIPUP methods, \widehat{W} is {\rm mat}_1({\rm{TOPUP}}_{k}(X_{1:T})) {\rm mat}_1({\rm{TOPUP}}_{k}(X_{1:T}))^\top or ({\rm{TIPUP}}_{k}(X_{1:T})) ({\rm{TIPUP}}_{k}(X_{1:T}))^\top , for each tensor mode k, 1\leq k \leq K, where {\rm{TOPUP}}_{k}(X_{1:T}) and {\rm{TIPUP}}_{k}(X_{1:T}) are defined in the Details section of the function tenFM.est. For iterative TOPUP and TIPUP methods, we refer to the literature in the References section for more information.

Value

return a list containing the following:

path

a K \times (\rm{niter}+1) matrix of the estimated Tucker rank of the factor process as a path of the maximum number of iteration (\rm{niter}) used. The first row is the estimated rank under non-iterative approach, the i+1-th row is the estimated rank \hat r_1, \hat r_2, \cdots, \hat r_K at (i)-th iteration.

factor.num

final solution of the estimated Tucker rank of the factor process \hat r_1, \hat r_2, \cdots, \hat r_K.

References

Han, Yuefeng, Cun-Hui Zhang, and Rong Chen. "Rank Determination in Tensor Factor Model." Available at SSRN 3730305 (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
rank <- tenFM.rank(x,r=c(4,4,4),h0=1,rank='IC',iter=TRUE,method='TIPUP')  # Estimate the rank

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