farm.scree
Diagnostic plots and quantities arising from estimating the number of underlying factors
Given the data, this function draws a scree plot and a plot of the eigenvalue ratios. The eignevalue ratio test is used to estimate the number of factors. See Ahn and Horenstein(2013).
Usage
farm.scree(X, K.scree = NULL, K.factors = NULL, robust = FALSE)
Arguments
- X
an n x p data matrix with each row being a sample.
- K.scree
an optional integer specifying the number of eigenvalues to be plotted in the scree plot. Default is min(n,p).
- K.factors
an optional integer specifying the number of eigenvalues to be used for the eigenvalue ratio test. Default is min(n,p)/2.
- robust
a logical indicating whether to use a robust covariance estimator if TRUE, or the sample covariance estimator. Default is FALSE.
Details
The maximum eigenvalue ratio is marked differently on the plot. The index of this maximum ratio gives the number of estimated factors.
User has to hit <Return> to see the second plot.
All the data used in the plots are output as a list.
Value
Two plots: First plot is the scree plot of the data. Second plot illustrates the eigenvalue ratio test.
A list with the data used for the plots:
eigenvaluesEigenvalues of the covariance matrixproportionsProportion of variance explained by the principal componentseigenvalue.ratiosRatios calculated in the eigenvalue ratio testnfactorsNumber of factors found using the eigenvalue ratio test
References
Ahn, S. C. and Horenstein, A. R. (2013). "Eigenvalue Ratio Test for the Number of Factors," Econometrica, 81 (3), 1203<U+2013>1227.
Examples
# NOT RUN {
set.seed(100)
p = 100
n = 20
epsilon = matrix(rnorm( p*n, 0,1), nrow = n)
B = matrix(rnorm(p*3,0,1), nrow=p)
fx = matrix(rnorm(3*n, 0,1), nrow = n)
X = fx%*%t(B)+ epsilon
ouput = farm.scree(X)
# }