Learn R Programming

IALS (version 0.1.3)

KIALS: Estimating the Pair of Factor Numbers via Eigenvalue Ratios Corresponding to IALS

Description

The function is to estimate the pair of factor numbers via eigenvalue ratios corresponding to IALS method.

Usage

KIALS(X, W1 = NULL, W2 = NULL, kmax, max_iter = 100, ep = 1e-06)

Value

\(k_1\)

The estimated row factor number.

\(k_2\)

The estimated column factor number.

Arguments

X

Input an array with \(T \times p_1 \times p_2\), where \(T\) is the sample size, \(p_1\) is the the row dimension of each matrix observation and \(p_2\) is the the column dimension of each matrix observation.

W1

The initial value for the row factor loading matrix. The default is NULL, with an initial estimate chosen from \(\alpha\)-PCA if not provided.

W2

The initial value for the column factor loading matrix. The default is NULL, with an initial estimate chosen from \(\alpha\)-PCA if not provided.

kmax

The user-supplied maximum factor numbers. Here it means the upper bound of the number of row factors and column factors.

max_iter

The maximum number of iterations for the algorithm, default is 100. See in IALS.

ep

The stopping criterion in the iteration algorithm, default is \(10^{-6} \times Tp_1 p_2\). See in IALS.

Author

Yong He, Ran Zhao, Wen-Xin Zhou.

Details

In detail, we first set \(k_{\max}\) is a predetermined upper bound for \(k_1,k_2\) and thus by IALS method, we can obtain the estimate of \(\bold{F}_t\), denote as \(\hat{\bold{F}}_t\), which is of dimension \(k_{\max}\times k_{\max}\). Then the dimensions \(k_1\) and \(k_2\) are further determined as follows: $$\hat{k}_{1}=\arg\max_{j \leq k_{\max}}\frac{\lambda_{j}\left(\dfrac{1}{T}\sum_{t=1}^{T}\hat{\bold{F}}_t\hat{\bold{F}}_t^\top\right)}{\lambda_{j+1}\left(\frac{1}{T}\sum_{t=1}^{T}\hat{\bold{F}}_t\hat{\bold{F}}_t^\top\right)},$$ $$\hat{k}_{2}=\arg\max_{j \leq k_{\max}}\frac{\lambda_{j}\left(\dfrac{1}{T}\sum_{t=1}^{T}\hat{\bold{F}}_t^\top\hat{\bold{F}}_t\right)}{\lambda_{j+1}\left(\frac{1}{T}\sum_{t=1}^{T}\hat{\bold{F}}_t^\top\hat{\bold{F}}_t\right)}.$$

References

He, Y., Zhao, R., & Zhou, W. X. (2023). Iterative Alternating Least Square Estimation for Large-dimensional Matrix Factor Model. <arXiv:2301.00360>.

Examples

Run this code
set.seed(11111)
T=20;p1=20;p2=20
k1=3;k2=3

R=matrix(runif(p1*k1,min=-1,max=1),p1,k1)
C=matrix(runif(p2*k2,min=-1,max=1),p2,k2)

X=E=array(0,c(T,p1,p2))
F=array(0,c(T,k1,k2))

for(t in 1:T){
  F[t,,]=matrix(rnorm(k1*k2),k1,k2)
  E[t,,]=matrix(rnorm(p1*p2),p1,p2)
}

for(t in 1:T){
X[t,,]=R%*%F[t,,]%*%t(C)+E[t,,]
}

kmax=8
K=KIALS(X, W1 = NULL, W2 = NULL, kmax, max_iter = 100, ep = 1e-06);K

Run the code above in your browser using DataLab