knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
An R package for estimating single- and multiple-group penalized factor models via a trust-region algorithm with integrated automatic multiple tuning parameter selection (Geminiani et al., 2021). Supported penalties include lasso, adaptive lasso, scad, mcp, and ridge.
You can install the released version of penfa from CRAN with:
install.packages("penfa")
And the development version from GitHub with:
# install.packages("devtools") devtools::install_github("egeminiani/penfa")
This is a basic example showing how to fit a PENalized Factor Analysis model with the alasso penalty and the automatic tuning procedure. A shrinkage penalty is applied to the whole factor loading matrix.
Let's load the data (see ?ccdata
for details).
library(penfa) data(ccdata)
Step 1 : specify the model syntax
syntax = 'help =~ h1 + h2 + h3 + h4 + h5 + h6 + h7 + 0*v1 + v2 + v3 + v4 + v5 voice =~ 0*h1 + h2 + h3 + h4 + h5 + h6 + h7 + v1 + v2 + v3 + v4 + v5'
Step 2: fit the model
alasso_fit <- penfa(model = syntax, data = ccdata, std.lv = TRUE, pen.shrink = "alasso")
alasso_fit
Step 3: inspect the results
summary(alasso_fit)
See vignette("automatic-tuning-selection")
for the estimation of a penalized
factor model with lasso and alasso penalties. The tuning parameter producing the
optimal amount of sparsity in the factor loading matrix is found through the
automatic tuning procedure.
See vignette("grid-search-tuning-selection")
for the estimation of a
penalized factor model with scad and mcp penalties. A grid search is conducted,
and the optimal tuning parameter is the one generating the penalized model with
the lowest GBIC (Generalized Bayesian Information Criterion).
See "multiple-group-analysis" for the estimation of a multiple-group penalized factor model with the alasso penalty. This model encourages sparsity in the loading matrices and cross-group invariance of loadings and intercepts. The automatic multiple tuning parameter procedure is employed for finding the optimal tuning parameter vector.
See "plotting-penalty-matrix" for details on how to produce interactive plots of the penalty matrices.
Geminiani, E., Marra, G., & Moustaki, I. (2021). "Single- and Multiple-Group Penalized Factor Analysis: A Trust-Region Algorithm Approach with Integrated Automatic Multiple Tuning Parameter Selection." Psychometrika, 86(1), 65-95. https://doi.org/10.1007/s11336-021-09751-8
Geminiani, E. (2020). "A Penalized Likelihood-Based Framework for Single and Multiple-Group Factor Analysis Models." PhD thesis, University of Bologna. http://amsdottorato.unibo.it/9355/.
print(citation("penfa"), bibtex = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.