POETCmin(Y, K, thres, matrix)
(1) A simple way of determining K is to count the number of very spiked (much larger than others) eigenvalues of the p by p sample covariance matrix of Y.
(2) A formal data-driven way of determining K is described in Bai and Ng (2002):"Determining the number of factors in approximate factor models", Econometrica, 70, 191-221. This procedure requires a one-dimensional optimization.
(3) POET is very robust to over-estimating K. But under-estimating K can result to VERY BAD performance. Therefore we strongly recommend choosing a relatively large K (normally less than 8) to avoid missing any important common factor.
(4) K=0 corresponds to threshoding the sample covariance directly.
'soft': soft thresholding
'hard': hard thresholding
'scad': scad thresholding
'alasso': adaptive lasso thresholding
Details are found in Rothman et al. (2009): "Generalized thresholding of large covariance matrices." JASA, 104, 177-186
'cor': threshold the error correlation matrix then transform back to covariance matrix
'vad': threshold the error covariance matrix directly.
Model: Y_t=Bf_t+u_t, where B, f_t and u_t represent factor loading matrix, common factors and idiosyncratic error respectively. Only Y_t is observable. t=1,...,n. Dimension of Y_t is p. The goal is to estimate the covariance matrices of Y_t and u_t.
Note: (1) POET is optimization-free, so no initial value, tolerant, or maximum iterations need to be specified as inputs.
(2) We can apply the adaptive thresholding (Cai and Liu 2011, JASA) on either the correlation matrix or the covariance matrix, specified by the option 'matrix'.
(3) If no factor structure is assumed, i.e., no common factors exist and var(Y_t) itself is sparse, set K=0.
p=100
n=50
Y<-array(rnorm(p*n),dim=c(p,n))
C<-POETCmin(Y,3,'soft','vad')
Run the code above in your browser using DataLab