Package {DVS}


Type: Package
Title: Stability Selection with Lasso after Variable Decorrelation
Version: 0.0.1
Description: Implements stability selection with Lasso after variable decorrelation for identifying relevant variables in high-dimensional data. The method applies Air-HOLP screening and Gram-Schmidt orthogonalization before Lasso-based stability selection.
License: MIT + file LICENSE
Imports: glmnet, cmna
Encoding: UTF-8
URL: https://github.com/MahdiNouraie/DVS, https://doi.org/10.1007/s11222-026-10916-7
BugReports: https://github.com/MahdiNouraie/DVS/issues
RoxygenNote: 7.3.3
Suggests: testthat (≥ 3.0.0)
Config/testthat/edition: 3
NeedsCompilation: no
Packaged: 2026-07-22 04:18:35 UTC; 48099783
Author: Mahdi Nouraie [aut, cre], Connor Smith [aut], Samuel Muller [aut]
Maintainer: Mahdi Nouraie <mahdinouraie20@gmail.com>
Repository: CRAN
Date/Publication: 2026-07-30 17:20:41 UTC

DVS: Decorrelation for Variable Selection

Description

Tools for decorrelation-based variable selection using Air-HOLP, Gram-Schmidt orthogonalization, and stability selection with the Lasso.

Author(s)

Maintainer: Mahdi Nouraie mahdinouraie20@gmail.com

Authors:

See Also

Useful links:


DVS: Decorrelation for Variable Selection

Description

This package contains a main function: DVS. The DVS function first decorrelates predictors using Air-HOLP and Gram-Schmidt orthogonalization, and then applies stability selection with the Lasso to identify relevant variables.

Usage

DVS(x, y, B, Threshold = 10)

Arguments

x

A numeric matrix of predictors.

y

A numeric vector of response values.

B

An integer specifying the number of sub-samples in the stability selection.

Threshold

An integer specifying the number of variables retained by Air-HOLP during the initial screening step before decorrelation. The Threshold parameter controls the number of variables retained after Air-HOLP screening. It should typically be chosen as a small multiple of the expected number of relevant variables.

Value

A list containing either:

In both cases, the returned list also contains a data frame of selected variables and their selection frequencies.

References

Nouraie, M., Smith, C. & Muller, S. (2026). Stability selection via variable decorrelation. Statistics and Computing 36, 160.

Joudah, I., Muller, S., & Zhu, H. (2025). Air-HOLP: adaptive regularized feature screening for high dimensional correlated data. Statistics and Computing, 35(3), 63.

Nouraie, M., & Muller, S. (2024). On the Selection Stability of Stability Selection and Its Applications. arXiv preprint arXiv:2411.09097.

Nogueira, S., Sechidis, K., & Brown, G. (2018). On the stability of feature selection algorithms. Journal of Machine Learning Research, 18(174), 1-54.

Meinshausen, N., & Bühlmann, P. (2010). Stability selection. Journal of the Royal Statistical Society Series B: Statistical Methodology, 72(4), 417-473.

Tibshirani, R. (1996). Regression shrinkage and selection via the lasso. Journal of the Royal Statistical Society Series B: Statistical Methodology, 58(1), 267-288.

Examples

set.seed(123)
n <- 100 # Number of observations
rho <- 0.8 # Correlation coefficient for the predictors
x1 <- matrix(rnorm(n * 3), ncol = 3) # First 3 independent predictors
x2 <- rho * x1[, rep(1:3, length.out = 7)] +
sqrt(1 - rho^2) * matrix(rnorm(n * 7), ncol = 7) # Make next 7 predictors correlated with x1
x <- cbind(x1, x2) # Combine independent and correlated predictors
colnames(x) <- paste0("X", 1:10) # Assign column names
beta <- c(1, 2, 3, rep(0, 7)) # Create regression coefficients vector
y <- x %*% beta + rnorm(n) # Generate response variable with some noise
B <- 10 # Number of sub-samples for stability selection
DVS(x, y, B, Threshold = 10)  # Example usage of the DVS function