Sparse regression and classification via the Pivotal
Information Criterion (PIC), an alternative to the Bayesian
Information Criterion (BIC), cross-validation, and Lasso-based
tuning. The regularization parameter is selected from a pivotal
null-distribution statistic, eliminating the need for
cross-validation and yielding sharper support recovery. Provides
Fast Iterative Shrinkage-Thresholding Algorithm (FISTA)
optimization for the L1, Smoothly Clipped Absolute Deviation
(SCAD), and Minimax Concave Penalty (MCP) penalties across six
response distributions: Gaussian, binomial, Poisson, exponential,
Gumbel, and Cox. Under standard sparsity assumptions, the
selector achieves a phase transition for exact support recovery,
analogous to results in compressed sensing. See Sardy, van Cutsem
and van de Geer (2026)
Variable selection using the Pivotal Information Criterion.
Sparse regression and classification via the Pivotal Information Criterion (PIC), an alternative to BIC, cross-validation, and Lasso-based tuning. The regularization parameter is selected from a pivotal null-distribution statistic, eliminating the need for cross-validation and yielding sharper support recovery.
Provides FISTA optimization for the L1, SCAD, and MCP penalties across six response distributions:
| Family | family = |
Response |
|---|---|---|
| Gaussian | "gaussian" |
continuous |
| Binomial | "binomial" |
0/1 binary |
| Poisson | "poisson" |
count |
| Exponential | "exponential" |
positive cont. |
| Gumbel | "gumbel" |
continuous |
| Cox PH | "cox" |
(time, event) |
Under standard sparsity assumptions, the selector achieves a phase transition for exact support recovery, analogous to results in compressed sensing.
Install the released version from CRAN:
install.packages("picreg")
Or the development version from GitHub:
# install.packages("remotes")
remotes::install_github("VcMaxouuu/picreg")
library(picreg)
data(QuickStartExample)
fit <- pic(QuickStartExample$X, QuickStartExample$y)
fit$selected # names of the selected variables
fit$lambda # PDB-selected lambda (no cross-validation)
summary(fit) # family, penalty, lambda, and non-zero coefficients
coef(fit) # coefficients (sparse matrix, original scale of X)
predict(fit, newx = QuickStartExample$X[1:5, ])
The design deliberately mirrors glmnet: a single pic() fitting
function returning an object equipped with print(), summary(),
coef(), predict(), plot(), and assess() methods that behave
consistently across all six families.
The full walk-through — fitting across all six families, predicting,
visualizing, choosing penalties, and running diagnostics
(phase_transition(), pdb_asymptotic()) — lives in the package
vignette:
vignette("vignette", package = "picreg")
Sardy, van Cutsem, and van de Geer. The Pivotal Information Criterion. https://arxiv.org/abs/2603.04172 (doi:10.48550/arXiv.2603.04172)