diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index fce2bdc..0000000 --- a/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -* text=auto -data/* binary -src/* text=lf -R/* text=lf diff --git a/DESCRIPTION b/DESCRIPTION index 06d4691..357205b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: msaenet Type: Package Title: Multi-Step Adaptive Estimation Methods for Sparse Regressions -Version: 3.1.1 +Version: 3.1.2 Authors@R: c( person("Nan", "Xiao", email = "me@nanx.me", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-0250-5673")), @@ -20,14 +20,14 @@ BugReports: https://github.com/nanxstats/msaenet/issues Depends: R (>= 3.0.2) Imports: - glmnet, - ncvreg (>= 3.8-0), + Matrix, foreach, + glmnet, mvtnorm, - survival, - Matrix + ncvreg (>= 3.8-0), + survival Suggests: + doParallel, knitr, - rmarkdown, - doParallel + rmarkdown RoxygenNote: 7.3.1 diff --git a/NEWS.md b/NEWS.md index e046dae..fb7c7a5 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,19 +1,36 @@ +# msaenet 3.1.2 + +## Improvements + +- The coefficient profile plot now has a new default color palette + (new Tableau 10). The updated palette offers a more refined and + visually appealing look, while also improving accessibility for users + with color-vision deficiencies. The color palette is consistency applied + across multiple graphical elements in all plot types (#13). +- Added a note in the vignette about possible graphical parameters for + labeling the selected variables supported by the plotting methods + (thanks, @xingxingyanjing, #12). +- Simplified and optimized vignette and readme plotting chunk options (#14). +- Fixed typos and improved text style in documentation (#14). + # msaenet 3.1.1 ## Improvements -- Use a proper, three-component version number following Semantic Versioning. -- Fix warnings about single lambda (#11). -- Fix "lost braces" check notes on r-devel and check notes about `LazyData`. -- Fix code linting issues. -- Use GitHub Actions to build the pkgdown site. +- Used a proper, three-component version number following Semantic Versioning. +- Fixed warnings about single lambda (#11). +- Fixed "lost braces" check notes on r-devel and check notes about `LazyData`. +- Fixed code linting issues. +- Used GitHub Actions to build the pkgdown site. # msaenet 3.1 ## Improvements -- Added detailed signal-to-noise ratio (SNR) definition in `msaenet.sim.gaussian()`. -- Updated the example code in the vignette to make it work better with the most recent version of glmnet (2.0-16). +- Added detailed signal-to-noise ratio (SNR) definition in + `msaenet.sim.gaussian()`. +- Updated the example code in the vignette to make it work better with the + most recent version of glmnet (2.0-16). - Updated GitHub repository links due to the handle change. - Updated the vignette style. @@ -21,19 +38,25 @@ ## New features -- Added a new argument `penalty.factor.init` to support customized penalty factor applied to each coefficient in the initial estimation step. This is useful for incorporating prior information about variable weights, for example, emphasizing specific clinical variables. We thank Xin Wang from University of Michigan for this feedback [[#4](https://github.com/nanxstats/msaenet/issues/4)]. +- Added a new argument `penalty.factor.init` to support customized + penalty factor applied to each coefficient in the initial estimation step. + This is useful for incorporating prior information about variable weights, + for example, emphasizing specific clinical variables. + We thank Xin Wang from University of Michigan for this feedback (#4). # msaenet 2.9 ## Improvements -- New URL for the documentation website: https://nanx.me/msaenet/. +- New URL for the documentation website: . # msaenet 2.8 ## New features -- Added a Cleveland dot plot option `type = "dotplot"` in `plot.msaenet()`. This plot offers a direct visualization of the model coefficients at the optimal step. +- Added a Cleveland dot plot option `type = "dotplot"` in `plot.msaenet()`. + This plot offers a direct visualization of the model coefficients + at the optimal step. # msaenet 2.7 @@ -45,7 +68,8 @@ ## Improvements -- Added two arguments `lower.limits` and `upper.limits` to support coefficient constraints in `aenet()` and `msaenet()` [[#1](https://github.com/nanxstats/msaenet/issues/1)]. +- Added two arguments `lower.limits` and `upper.limits` to support coefficient + constraints in `aenet()` and `msaenet()` (#1). # msaenet 2.5 @@ -58,53 +82,80 @@ ## Improvements -- Improved graphical details for coefficient path plots, following the general graphic style in the ESL (*The Elements of Statistical Learning*) book. -- More options available in `plot.msaenet()` for extra flexibility: it is now possible to set important properties of the label appearance such as position, offset, font size, and axis titles via the new arguments `label.pos`, `label.offset`, `label.cex`, `xlab`, and `ylab`. +- Improved graphical details for coefficient path plots, following the + general graphic style in the ESL (*The Elements of Statistical Learning*) book. +- More options available in `plot.msaenet()` for extra flexibility: + it is now possible to set important properties of the label appearance + such as position, offset, font size, and axis titles via the new arguments + `label.pos`, `label.offset`, `label.cex`, `xlab`, and `ylab`. # msaenet 2.3 ## Improvements -- Reduced model saturation cases and improved speed at the initialization step for MCP-net and SCAD-net based models when `init = "ridge"`, by using the ridge estimation implementation from `glmnet`. As a benefit, we now have a more aligned baseline for the comparison between elastic-net based models and MCP-net/SCAD-net based models when `init = "ridge"`. -- Style improvements in code and examples: reduced whitespace with a new formatting scheme. +- Reduced model saturation cases and improved speed at the initialization + step for MCP-net and SCAD-net based models when `init = "ridge"`, + by using the ridge estimation implementation from `glmnet`. + As a benefit, we now have a more aligned baseline for the comparison + between elastic-net based models and MCP-net/SCAD-net based models when + `init = "ridge"`. +- Style improvements in code and examples: reduced whitespace with a + new formatting scheme. # msaenet 2.2 ## New features -- Added BIC, EBIC, and AIC in addition to k-fold cross-validation for model selection. -- Added new arguments `tune` and `tune.nsteps` to controls this for selecting the optimal model for each step, and the optimal model among all steps (i.e. the optimal step). -- Added arguments `ebic.gamma` and `ebic.gamma.nsteps` to control the EBIC tuning parameter, if `ebic` is specified by `tune` or `tune.nsteps`. -- Redesigned plot function: now supports two types of plots (coefficient path, screeplot of the optimal step selection criterion), optimal step highlighting, variable labeling, and color palette customization. See `?plot.msaenet` for details. +- Added BIC, EBIC, and AIC in addition to k-fold cross-validation for + model selection. +- Added new arguments `tune` and `tune.nsteps` to controls this for + selecting the optimal model for each step, and the optimal model + among all steps (i.e. the optimal step). +- Added arguments `ebic.gamma` and `ebic.gamma.nsteps` to control the + EBIC tuning parameter, if `ebic` is specified by `tune` or `tune.nsteps`. +- Redesigned plot function: now supports two types of plots + (coefficient path, screeplot of the optimal step selection criterion), + optimal step highlighting, variable labeling, and color palette customization. + See `?plot.msaenet` for details. ## Improvements -- Renamed previous argument `gamma` (scaling factor for adaptive weights) to `scale` to avoid possible confusion. -- Reset the default values of candidate concavity parameter `gammas` to be 3.7 for SCAD-net and 3 for MCP-net. -- Unified the supported model `family` in all model types to be `"gaussian"`, `"binomial"`, `"poisson"`, and `"cox"`. +- Renamed previous argument `gamma` (scaling factor for adaptive weights) + to `scale` to avoid possible confusion. +- Reset the default values of candidate concavity parameter `gammas` to be + 3.7 for SCAD-net and 3 for MCP-net. +- Unified the supported model `family` in all model types to be + `"gaussian"`, `"binomial"`, `"poisson"`, and `"cox"`. # msaenet 2.1 ## New features -- Added functions `msaenet.sim.binomial()`, `msaenet.sim.poisson()`, `msaenet.sim.cox()` to generate simulation data for logistic, Poisson, and Cox regression models. -- Added function `msaenet.fn()` for computing the number of false negative selections in msaenet models. +- Added functions `msaenet.sim.binomial()`, `msaenet.sim.poisson()`, + `msaenet.sim.cox()` to generate simulation data for logistic, Poisson, + and Cox regression models. +- Added function `msaenet.fn()` for computing the number of false negative + selections in msaenet models. - Added function `msaenet.mse()` for computing mean squared error (MSE). ## Improvements -- Speed improvements in `msaenet.sim.gaussian()` by more vectorization when generating correlation matrices. -- Added parameters `max.iter` and `epsilon` for MCP-net and SCAD-net related functions to have finer control over convergence criterion. By default, `max.iter = 10000` and `epsilon = 1e-4`. +- Speed improvements in `msaenet.sim.gaussian()` by more vectorization + when generating correlation matrices. +- Added parameters `max.iter` and `epsilon` for MCP-net and SCAD-net + related functions to have finer control over convergence criterion. + By default, `max.iter = 10000` and `epsilon = 1e-4`. # msaenet 2.0 ## New features -- Added support for adaptive MCP-net. See `?amnet` for details. -- Added support for adaptive SCAD-net. See `?asnet` for details. -- Added support for multi-step adaptive MCP-net (MSAMNet). See `?msamnet` for details. -- Added support for multi-step adaptive SCAD-net (MSASNet). See `?msasnet` for details. -- Added `msaenet.nzv.all()` for displaying the indices of non-zero variables in all adaptive estimation steps. +- Added `amnet()` to support adaptive MCP-net. +- Added `asnet()` to support adaptive SCAD-net. +- Added `msamnet()` to support multi-step adaptive MCP-net. +- Added `msasnet()` to support for multi-step adaptive SCAD-net. +- Added `msaenet.nzv.all()` for displaying the indices of non-zero variables + in all adaptive estimation steps. ## Improvements @@ -127,4 +178,4 @@ ## New features -- Initial version of the msaenet package +- Initial version of the msaenet package.