Eigenvalue-Based Estimation of the Number of Factors in Approximate Factor Models

Eigenvalue-based estimation of the number of factors in approximate factor models. Designed to work when either N or T is large, without requiring both dimensions to grow simultaneously. Implements the eigenvalue ratio estimator of Ahn and Horenstein (2013) , the information criteria of Bai and Ng (2002) , the tuned penalty of Alessi, Barigozzi and Capasso (2010) , the auto-covariance ratio estimator of Lam and Yao (2012) , and the edge distribution estimators of Onatski (2009) and Onatski (2010) .


factorselect

An R package for eigenvalue-based estimation of the number of factors in approximate factor models. Designed to work when either N or T is large, without requiring both dimensions to grow simultaneously.

Installation

# Development version from GitHub
devtools::install_github("penny4nonsense/factorselect")

Basic Usage

library(factorselect)

# Simulate a factor model with 3 true factors
X <- simulate_factor_model(N = 100, TT = 200, k = 3, sd = 0.5, seed = 42)

# Estimate number of factors using Ahn & Horenstein (2013)
result <- select_factors(X, method = "ahn_horenstein", kmax = 8)
print(result)
#> Factor Number Selection
#> =======================
#> Call: select_factors(X = X, method = "ahn_horenstein", kmax = 8)
#> 
#> kmax: 8 
#> 
#> Estimated number of factors:
#>   ahn_horenstein       3

All Methods

# Run all estimators at once
result <- select_factors(X,
                         method = c("ahn_horenstein", "bai_ng", "abc",
                                    "lam_yao", "onatski_2009", "onatski_2010"),
                         kmax   = 8)
print(result)
#> Factor Number Selection
#> =======================
#> Call: select_factors(X = X, method = c("ahn_horenstein", "bai_ng", 
#>     "abc", "lam_yao", "onatski_2009", "onatski_2010"), kmax = 8)
#> 
#> kmax: 8 
#> 
#> Estimated number of factors:
#>   ahn_horenstein       3
#>   bai_ng               3
#>   abc                  3
#>   lam_yao              6
#>   onatski_2009         3
#>   onatski_2010         3

Scree Plot

# Visualize the eigenvalue spectrum
result <- select_factors(X, method = "ahn_horenstein", kmax = 8)
plot(result)

Methods Implemented

Method Reference
Eigenvalue Ratio (ER, GR) Ahn & Horenstein (2013)
Information Criteria (PC, IC) Bai & Ng (2002)
Tuned Information Criteria Alessi, Barigozzi & Capasso (2010)
Auto-covariance Ratio Lam & Yao (2012)
Edge Distribution Test Onatski (2009)
Edge Distribution Estimator Onatski (2010)

References

Ahn, S.C. and Horenstein, A.R. (2013). Eigenvalue Ratio Test for the Number of Factors. Econometrica, 81(3), 1203-1227.

Bai, J. and Ng, S. (2002). Determining the Number of Factors in Approximate Factor Models. Econometrica, 70(1), 191-221.

Alessi, L., Barigozzi, M. and Capasso, M. (2010). Improved Penalization for Determining the Number of Factors in Approximate Factor Models. Statistics and Probability Letters, 80, 1806-1813.

Lam, C. and Yao, Q. (2012). Factor Modelling for High-Dimensional Time Series: Inference for the Number of Factors. The Annals of Statistics, 40(2), 694-726.

Onatski, A. (2009). Testing Hypotheses About the Number of Factors in Large Factor Models. Econometrica, 77(5), 1447-1479.

Onatski, A. (2010). Determining the Number of Factors From Empirical Distribution of Eigenvalues. The Review of Economics and Statistics, 92(4), 1004-1016.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("factorselect")

0.1.3 by Jason Parker, 6 months ago


https://github.com/penny4nonsense/factorselect


Report a bug at https://github.com/penny4nonsense/factorselect/issues


Browse source code at https://github.com/cran/factorselect


Authors: Jason Parker [aut, cre] (ORCID:


Documentation:   PDF Manual  


MIT + file LICENSE license


Suggests RSpectra, testthat, knitr, rmarkdown


See at CRAN