Giter Site home page Giter Site logo

nanxstats / msaenet Goto Github PK

View Code? Open in Web Editor NEW
13.0 5.0 7.0 13.8 MB

๐Ÿงฒ Multi-step adaptive estimation for reducing false positive selection in sparse regressions

Home Page: https://nanx.me/msaenet/

License: GNU General Public License v3.0

R 96.12% CSS 3.24% TeX 0.64%
high-dimensional-data variable-selection linear-regression machine-learning false-positive-control

msaenet's Introduction

msaenet

R-CMD-check CRAN status CRAN downloads

msaenet implements the multi-step adaptive elastic-net (MSAENet) algorithm for feature selection in high-dimensional regressions proposed in Xiao and Xu (2015) [PDF].

Nonconvex multi-step adaptive estimations based on MCP-net or SCAD-net are also supported.

Check vignette("msaenet") to get started.

Installation

You can install msaenet from CRAN:

install.packages("msaenet")

Or try the development version on GitHub:

remotes::install_github("nanxstats/msaenet")

Citation

To cite the msaenet package in publications, please use

Nan Xiao and Qing-Song Xu. (2015). Multi-step adaptive elastic-net: reducing false positives in high-dimensional variable selection. Journal of Statistical Computation and Simulation 85(18), 3755โ€“3765.

A BibTeX entry for LaTeX users is

@article{xiao2015multi,
  title   = {Multi-step adaptive elastic-net: reducing false positives in high-dimensional variable selection},
  author  = {Nan Xiao and Qing-Song Xu},
  journal = {Journal of Statistical Computation and Simulation},
  volume  = {85},
  number  = {18},
  pages   = {3755--3765},
  year    = {2015},
  doi     = {10.1080/00949655.2015.1016944}
}

Gallery

Adaptive Elastic-Net / Multi-Step Adaptive Elastic-Net

Adaptive MCP-Net / Multi-Step Adaptive MCP-Net

Adaptive SCAD-Net / Multi-Step Adaptive SCAD-Net

Contribute

To contribute to this project, please take a look at the Contributing Guidelines first. Please note that the msaenet project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.

License

msaenet is free and open source software, licensed under GPL-3.

msaenet's People

Contributors

nanxstats avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

msaenet's Issues

coef.msaenet() exclues intercept term

I don't know if this is intended or not, but coef.msaenet() excludes the intercept term while coef.glmnet() does not.

library(msaenet)

dat = msaenet.sim.gaussian(
  n = 150, p = 20, rho = 0.6,
  coef = rep(1, 5), snr = 2, p.train = 0.7,
  seed = 1001)

msaenet.fit = msaenet(
  dat$x.tr, dat$y.tr,
  alphas = seq(0.2, 0.8, 0.2),
  nsteps = 3L, seed = 1003)

coef(msaenet.fit)     # coef.msaenet() exclues intercept
coef(msaenet.fit$model)     # coef.glmnet() returns intercept

Release msaenet 3.1.3

Prepare for release

  • Check current CRAN check results
  • Check licensing of included files
  • Review pkgdown reference index for, e.g., missing topics
  • Bump version
  • Update cran-comments.md (optional)
  • Update NEWS.md
  • Review pkgdown website
  • urlchecker::url_check()
  • Check with local machine
  • Check with GitHub Actions
  • Check with win-builder

Submit to CRAN

  • Draft GitHub release
  • Submit to CRAN via web form
  • Approve emails

Wait for CRAN

  • Accepted ๐ŸŽ‰

Release msaenet 3.1.1

Prepare for release

  • Check current CRAN check results
  • Check licensing of included files
  • Review pkgdown reference index for, e.g., missing topics
  • Bump version
  • Update cran-comments.md (optional)
  • Update NEWS.md
  • Review pkgdown website
  • urlchecker::url_check()
  • Check with local machine
  • Check with GitHub Actions
  • Check with win-builder

Submit to CRAN

  • Draft GitHub release
  • Submit to CRAN via web form
  • Approve emails

Wait for CRAN

  • Accepted ๐ŸŽ‰

Support penalty.factor in the initial estimation step for must-keep variables

Under the context of clinical research, it sometimes makes sense to have some "must-keep" variables for Cox regressions. This is beyond the standard penalized linear models supported in msaenet and obviously not officially supported by glmnet or ncvreg.

As a workaround, we can add a new argument penalty.factor.init which will be assigned as the penalty.factor in the first estimation step (and first estimation step only). Users can assign a lower penalty factor for must-keep variables and a higher penalty factor for the other variables. The factor sizes will be subjective, though.

question(coordinate descent)

Hello,did the coordinate descent method be used to estimate the coefficients of elastic network and adaptive elastic network?

Add citation key

Need to add citation key to inst/CITATION so that running citation("msaenet") gives the correct output.

Feature Request - Constraining Covariates

It would be useful if the functions in this package supported or provided arguments similar to glmnet::glmnet()'s lower.limits and upper.limits. I frequently run adaptive elastic nets using glmnet and regularly have to constrain covariates to be non-negative or non-positive.

Release msaenet 3.1.2

Prepare for release

  • Check current CRAN check results
  • Check licensing of included files
  • Review pkgdown reference index for, e.g., missing topics
  • Bump version
  • Update cran-comments.md (optional)
  • Update NEWS.md
  • Review pkgdown website
  • urlchecker::url_check()
  • Check with local machine
  • Check with GitHub Actions
  • Check with win-builder

Submit to CRAN

  • Draft GitHub release
  • Submit to CRAN via web form
  • Approve emails

Wait for CRAN

  • Accepted ๐ŸŽ‰

Fix ncvreg warnings on pathwise optimization

Warning: ncvreg() is intended for pathwise optimization, not for single values of lambda.
  1. You are strongly encouraged to fit a path and extract the solution at the lambda value of interest,
      rather than use ncvreg() in this way.
  3. In particular, if you are using the MCP or SCAD penalties, be aware that you greatly increase
      your risk of converging to an inferior local maximum if you do not fit an entire path.
  5. You may wish to look at the ncvfit() function, which is intended for non-path (i.e., single-lambda)
      optimization and allows the user to supply initial values.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.