Variable Selection using the Pivotal Information Criterion

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) .


picreg

CRAN status CRAN downloads License: GPL-2

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.

Installation

Install the released version from CRAN:

install.packages("picreg")

Or the development version from GitHub:

# install.packages("remotes")
remotes::install_github("VcMaxouuu/picreg")

Quick start

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.

Documentation

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")

Reference

Sardy, van Cutsem, and van de Geer. The Pivotal Information Criterion. https://arxiv.org/abs/2603.04172 (doi:10.48550/arXiv.2603.04172)

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("picreg")

0.1.4 by Maxime van Cutsem, 2 months ago


https://github.com/VcMaxouuu/picreg, https://vcmaxouuu.github.io/picreg/


Report a bug at https://github.com/VcMaxouuu/picreg/issues


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


Authors: Maxime van Cutsem [aut, cre] , Sylvain Sardy [aut]


Documentation:   PDF Manual  


GPL-2 license


Imports stats, graphics, grDevices, parallel, future, future.apply, Matrix, Rcpp

Suggests testthat, knitr, rmarkdown, xfun, glmnet

Linking to Rcpp, RcppArmadillo

System requirements: C++17


See at CRAN