Commit c66884e2 authored by davidkep's avatar davidkep

update README

parent a73ba4b5
# New PENSE R package
This R package is a new implementation of the Penalized Elastic Net S-Estimator (PENSE) and M-estimator (PENSEM)
for linear regression.
It also supports the adaptive versions of these two estimates, i.e., adaptive PENSE and adaptive PENSEM.
This R package is a new implementation of the Penalized Elastic Net S-Estimator (PENSE) for linear regression.
It also supports the adaptive version, i.e., adaptive PENSE.
The goal is to maintain a backwards-compatible interface, using a completely rewritten codebase.
Currently, the package only supports a subset of the original [pense package](https://cran.r-project.org/package=pense).
Importantly, there is no support for automatic hyper-parameter selection (e.g., cross-validation) or MM-estimators.
At the moment, the interface of the new implementation is not yet backwards-compatible.
## New Codebase
The new package uses the [nsoptim](https://gitlab.math.ubc.ca/dakep/nsoptim) package for optimization routines.
## Old Overview (R)
The main functions in the package are
* `pense()` … to compute a robust elastic net S-estimator for linear regression
* `pensem()` … to compute a robust elastic net MM-estimator either directly from the data matrix or
from an S-estimator previously computed with `pense()`.
Both of these functions perform k-fold cross-validation to choose the optimal penalty level
`lambda`, but the optimal balance between the L1 and the L2 penalties (the `alpha` parameter) needs
to be pre-specified by the user.
The default breakdown point is set to 25%. If the user needs an estimator with a higher breakdown
point, the `delta` argument in the `pense_options()` and `initest_options()` can be set to the
desired breakdown point (.e.g, `delta = 0.5`).
The package also exports an efficient classical elastic net algorithm available via the functions
`elnet()` and `elnet_cv()` which chooses an optimal penalty parameter based on cross-validation.
The elastic net solution is computed either by the augmented LARS algorithm
(`en_options_aug_lars()`) or via the Dual Augmented Lagrangian algorithm (Tomioka, et al. 2011)
selected with `en_options_dal()` which is much faster in case of a large number of predictors
(> 500) and a small number of observations (< 200).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment