KIALS {IALS} | R Documentation |
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)
Arguments
X |
Input an array with |
W1 |
The initial value for the row factor loading matrix. The default is NULL, with an initial estimate chosen from |
W2 |
The initial value for the column factor loading matrix. The default is NULL, with an initial estimate chosen from |
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 |
ep |
The stopping criterion in the iteration algorithm, default is |
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)}.
Value
\eqn{k_1} |
The estimated row factor number. |
\eqn{k_2} |
The estimated column factor number. |
Author(s)
Yong He, Ran Zhao, Wen-Xin Zhou.
References
He, Y., Zhao, R., & Zhou, W. X. (2023). Iterative Alternating Least Square Estimation for Large-dimensional Matrix Factor Model. <arXiv:2301.00360>.
Examples
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