SPSP

A novel approach for feature selection based on the entire solution paths rather than the choice of a single tuning parameter, which significantly improves the accuracy of the selection.

https://github.com/xiaoruizhu/spsp

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.2%) to scientific vocabulary

Keywords

feature-selection r-package statistics variable-selection
Last synced: 6 months ago · JSON representation

Repository

A novel approach for feature selection based on the entire solution paths rather than the choice of a single tuning parameter, which significantly improves the accuracy of the selection.

Basic Info
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 3
Topics
feature-selection r-package statistics variable-selection
Created over 4 years ago · Last pushed about 2 years ago
Metadata Files
Readme

README.md

SPSP: an R Package for Selecting the relevant predictors by Partitioning the Solution Paths of the Penalized Likelihood Approach

CRAN checks

Overview

An implementation of the feature Selection procedure by Partitioning the entire Solution Paths (namely SPSP) to identify the relevant features rather than using a single tuning parameter. By utilizing the entire solution paths, this procedure can obtain better selection accuracy than the commonly used approach of selecting only one tuning parameter based on existing criteria, cross-validation (CV), generalized CV, AIC, BIC, and EBIC (Liu, Y., & Wang, P. (2018) https://doi.org/10.1214/18-EJS1434). It is more stable and accurate (low false positive and false negative rates) than other variable selection approaches. In addition, it can be flexibly coupled with the solution paths of Lasso, adaptive Lasso, SCAD, MCP, ridge regression, and other penalized estimators.

Installation

The SPSP package is currently available on SPSP CRAN.

Install SPSP development version from GitHub (recommended)

``` r

Install the development version from GitHub

if (!requireNamespace("devtools")) install.packages("devtools") devtools::install_github("XiaoruiZhu/SPSP") ```

Install SPSP from the CRAN

``` r

Install from CRAN

install.packages("SPSP") ```

Example

The user-friendly function SPSP() conducts the selection by Partitioning the Solution Paths (the SPSP procedure) to selects the relevant predictors. The user only needs to specify the independent variables matrix, response, family, and a penalized method that can generate the solution paths, for example, Lasso, adaptive Lasso, SCAD, MCP, ridge regression. The embedded selection methods in this package can be called using fitfun.SP = lasso.glmnet. Currently, six methods are included: lasso.glmnet, adalasso.glmnet, adalassoCV.glmnet, SCAD.ncvreg, MCP.ncvreg, and ridge.glmnet.

The following example shows the R codes:

``` r library(SPSP) data(HihgDim) library(glmnet)

x <- as.matrix(HighDim[,-1]) y <- HighDim[,1]

SPSP + lasso

spsplasso1 <- SPSP(x = x, y = y, family = "gaussian", fitfun.SP = lasso.glmnet, init = 1, standardize = FALSE, intercept = FALSE)

head(spsplasso1$nonzero) head(spsplasso1$beta_SPSP)

SPSP + adalasso

spspadalasso5 <- SPSP(x = x, y = y, family = "gaussian", fitfun.SP = adalasso.glmnet, init = 5, standardize = T, intercept = FALSE)

head(spspadalasso5$nonzero) head(spspadalasso5$beta_SPSP)

SPSP + SCAD

spspscad5 <- SPSP(x = x, y = y, family = "gaussian", fitfun.SP = SCAD.ncvreg, init = 5, standardize = T, intercept = FALSE)

head(spspscad5$nonzero) head(spspscad5$beta_SPSP) ```

References

Liu, Y., & Wang, P. (2018). Selection by partitioning the solution paths. Electronic Journal of Statistics, 12(1), 1988-2017. <10.1214/18-EJS1434>

Owner

  • Name: Jeremy-Zhu
  • Login: XiaoruiZhu
  • Kind: user
  • Location: Towson, MD

Xiaorui (Jeremy) Zhu is an assistant professor at Towson University. His research interests include Business Analytics, Statistics, and Finance.

GitHub Events

Total
Last Year

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 24
  • Total Committers: 2
  • Avg Commits per committer: 12.0
  • Development Distribution Score (DDS): 0.417
Past Year
  • Commits: 3
  • Committers: 1
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
XiaoruiZhu z****9@g****m 14
Jeremy-Zhu X****u 10

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • XiaoruiZhu (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 212 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
  • Total maintainers: 1
cran.r-project.org: SPSP

Selection by Partitioning the Solution Paths

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 212 Last month
Rankings
Forks count: 28.8%
Dependent packages count: 29.8%
Stargazers count: 31.7%
Dependent repos count: 35.5%
Average: 41.9%
Downloads: 83.8%
Maintainers (1)
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • R >= 3.5.0 depends
  • glmnet * depends
  • lars * depends
  • Rcpp >= 1.0.7 imports
  • MASS * suggests
  • testthat >= 3.0.0 suggests