PE {HDMFA}R Documentation

Projected Estimation for Large-Dimensional Matrix Factor Models

Description

This function is to fit the matrix factor model via the PE method by projecting the observation matrix onto the row or column factor space.

Usage

PE(X, m1, m2)

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.

m1

A positive integer indicating the row factor numbers.

m2

A positive integer indicating the column factor numbers.

Details

For the matrix factor models, Yu et al. (2022) propose a projection estimation method to estimate the model parameters. In details, for observations \bold{X}_t, t=1,2,\cdots,T, the data matrix is projected to a lower dimensional space by setting

\bold{Y}_t = \frac{1}{p_2} \bold{X}_t \bold{C}.

Given \bold{Y}_t, define

\bold{M}_1 = \frac{1}{Tp_1} \sum_{t=1}^T \bold{Y}_t \bold{Y}_t^\top,

and then the row factor loading matrix \bold{R} can be estimated by \sqrt{p_1} times the leading k_1 eigenvectors of \bold{M}_1. However, the projection matrix \bold{C} is unavailable in practice. A natural solution is to replace it with a consistent initial estimator. The column factor loading matrix \bold{C} can be similarly estimated by projecting \bold{X}_t onto the space of \bold{C} with \bold{R}. See Yu et al. (2022) for the detailed algorithm.

Value

The return value is a list. In this list, it contains the following:

F

The estimated factor matrix of dimension T \times m_1\times m_2.

R

The estimated row loading matrix of dimension p_1\times m_1, satisfying \bold{R}^\top\bold{R}=p_1\bold{I}_{m_1}.

C

The estimated column loading matrix of dimension p_2\times m_2, satisfying \bold{C}^\top\bold{C}=p_2\bold{I}_{m_2}.

Author(s)

Yong He, Changwei Zhao, Ran Zhao.

References

Yu, L., He, Y., Kong, X., & Zhang, X. (2022). Projected estimation for large-dimensional matrix factor models. Journal of Econometrics, 229(1), 201-217.

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=array(0,c(T,p1,p2))
   Y=X;E=Y
   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)
     Y[t,,]=R%*%F[t,,]%*%t(C)
   }
   X=Y+E
   
   #Estimate the factor matrices and loadings
   fit=PE(X, k1, k2)
   Rhat=fit$R 
   Chat=fit$C
   Fhat=fit$F
   
   #Estimate the common component
   CC=array(0,c(T,p1,p2))
   for (t in 1:T){
   CC[t,,]=Rhat%*%Fhat[t,,]%*%t(Chat)
   }
   CC

[Package HDMFA version 0.1.1 Index]