| Title: | Stability Selection with Lasso after Variable Decorrelation |
|---|---|
| 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. |
| Authors: | Mahdi Nouraie [aut, cre], Connor Smith [aut], Samuel Muller [aut] |
| Maintainer: | Mahdi Nouraie <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.0.1 |
| Built: | 2026-10-18 06:25:05 UTC |
| Source: | https://github.com/mahdinouraie/dvs |
Tools for decorrelation-based variable selection using Air-HOLP, Gram-Schmidt orthogonalization, and stability selection with the Lasso.
Maintainer: Mahdi Nouraie [email protected]
Authors:
Connor Smith
Samuel Muller
Useful links:
Report bugs at https://github.com/MahdiNouraie/DVS/issues
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.
DVS(x, y, B, Threshold = 10)DVS(x, y, B, Threshold = 10)
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 |
A list containing either:
lambda.stable and its associated stability value, if a stable tuning parameter is found;
otherwise, lambda.stable.1sd and its associated stability value.
In both cases, the returned list also contains a data frame of selected variables and their selection frequencies.
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.
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 functionset.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