Regularized Linear Models

Algorithms compute concave convex (CC) estimators including robust (penalized) generalized linear models and robust support vector machines via the COCO - composite optimization by conjugation operator. The package also contains penalized Poisson, negative binomial, zero-inflated Poisson, zero-inflated negative binomial regression models and robust models with non-convex loss functions. Wang et al. (2014) , Wang et al. (2015) , Wang et al. (2016) , Wang (2021) , Wang (2020) .


            CHANGES in `gzippath' VERSION 0.1_7   (2012-8-20)

o change glmcd on how the response variable y is scaled for family other than gaussian

o 8-25-2012 modification on gzipath_0.1-9.tar.gz b0 should be the average of response variable y for non-standardized case, in an agreement with the so determined lambda max for which beta = 0. This is correct in R function lmnet, see zipath_0.1-2_08_10_2012.tar.gz

            CHANGES in `gzipath' VERSION 0.1_13   (2013-11-24)

o for weighted penalized regression glmreg_fit, with standardize=TRUE, the weights are normalized to n*weights/sum(weights). Now added standardize=FALSE and the weights are not normalized. o zipath function was modified to incorporate glmreg_fit for weighted penalized Poisson and Negative Binomial regression. The tuning parameters were changed based on modified glmreg_fit.

            CHANGES in `gzipath' VERSION 0.1_14   (2014-5-8)

o for rescale=TRUE and penalty="mnet" or "snet" in zipath, data driven lambda.zero1 is too small, now changed to 0.5*sqrt([1]). This may be modified if the maximum value of lambda in glmreg was changed in the similar situations.

            CHANGES in `gzipath' VERSION 0.1_14   (2014-6-9)

o change package name to `mpath'

            CHANGES in `mpath' VERSION 0.1_15   (2014-9-23)

o apply patch from Martyn Plummer [email protected] to replace isna and lgamma in src Fortran file to avoid failure on some platforms

            CHANGES in `mpath' VERSION 0.1_16   (2014-10-25)

o change src/midloop.f, now saturated model only applies to logistic regression o add penalty.factor.count and in zipath function to allow different penalties for each of the variables. o add vignette to illustrate analysis of German health care demand

            CHANGES in `mpath' VERSION 0.1_17   (2014-11-10)

o fix a bug in function estfunReg, which is supposed to work only for one penalty parameter o fix a bug in src/lmnetGaus.f, computing meanx

            CHANGES in `mpath' VERSION 0.1_18   (2015-2-26)

o vignette file was updated to be consistent with the corresponding paper Wang et al (2015) o fix bugs in cv.glmreg.Rd, cv.glmregNB.Rd and cv.zipath.Rd o in findlam function, verify 0 < alpha <= 1 o fix a bug with intercept estimate for family="gaussian" o remove the threshold value mu=1000 for family=4 in midloop.f, lines 167 and 207 o change function name predict.zeroinfl1 to predictzeroinfl1

            CHANGES in `mpath' VERSION 0.1_19   (2015-7-23)

o editorial changes to files in man directory

            CHANGES in `mpath' VERSION 0.1_20   (2015-7-23)

o rebuild static_german.pdf, updating a reference o fix a bug in loss function for family="gaussian"

            CHANGES in `mpath' VERSION 0.1_21   (2015-11-23)

o minor changes to print lambda 4 digits

           CHANGES in `mpath' VERSION 0.2-1 (12-09-2015)

o add parallel computing for cross-validation in cross-validation function o remove vuong test, based on Wilson (2015), The misuse of the Vuong test for non-nested models to test for zero-inflation, Economics Letters, 127: 51:53

           CHANGES in `mpath' VERSION 0.2-3 (08-10-2016)

o change the format of b0 and beta in glmreg function when standardize=FALSE, to be consistent with standardize=TRUE o for findlam function in glmreg.R, change if(standardize) weights <- weights/sum(weights)


if(family=="gaussian" || standardize)     
    weights <- weights/sum(weights)

This corrects an error in glmreg with family="gaussian" and standardize=FALSE

o In src/lmnetGLM.f, remove lmnetGLM subroutine, which was not used anymore o fix subroutines in lmnetGLM.f, lmnetGaussian.f, midloop.f and outloop.f regarding gfortran warning messages with an email request from cran.R-project on August 28, 2016

           CHANGES in `mpath' VERSION 0.2-4 (08-30-2016)

o after a change of penGLM subroutine in midloop.f (removing unused argument n), glmreg.R and zipath.R were changed when invoking penGLM.

           CHANGES in `mpath' VERSION 0.3-1 (09-16-2016)

o add ncl and nclreg, and relevant files for nonconvex-based models o fix a bug computing penval in glmreg, add penalty.factor when calling penGLM in glmreg and zipath. These bugs don't affect the previous analysis results

           CHANGES in `mpath' VERSION 0.3-2 (07-14-2017)

o To register native routines and to disable symbol search. $cd mpath $R > tools::package_native_routine_registration_skeleton(".") copy and paste the full output in a packagename_init.c (i.e., mpath_init.c) file to be put in src/ o change convergence criteria in nclreg.R d1 <- sum((fk_old - fk)^2) #d1 <- sum((fk_old - fk)^2)/sum(fk_old^2) ### this can cause a problem if fk_old is zero o another change of convergence criteria in nclreg.R: comment out the following lines #if(k > 1){ # if(los[k] > los[k-1]){ #k <- iter #} #} o fix a bug in nclreg.R: lambda.min.ratio was not used in computing lambda with glmreg_fit o in nclreg.R, computing solution path stops if the numbers in exponential function become too big (infinite) if(any(is.nan(h))){ # exit loop stopit <- TRUE break } o add type.init and relevant arguments in nclreg_fit function to have three types of initial parameters and lambda values o replace fraction with lambda in cv.glmreg.R, cv.nclreg.R, cv.zipath.R and cv.glmregNB.R. This only affects the values of x-axis in plots, but not cross-validation results o add type.path to have two different updating methods when computing solution paths

           CHANGES in `mpath' VERSION 0.3-3 (08-17-2017)

o cycle through active set

           CHANGES in `mpath' VERSION 0.3-4 (08-22-2017)

o add type="active" in R/nclreg_fit function o fix a bug with cv.zipath when o add stopImplicitCluster() after registerDoParallel

           CHANGES in `mpath' VERSION 0.3-5 (10-17-2017)

o add vignette to illustrate classification of cancer patients with penalized robust nonconvex loss functions o change zipath function to cycle through warm start. The results can be different from the previous versions. o fix bugs with zipath when trace=TRUE and the zero component is an intercept-only model

           CHANGES in `mpath' VERSION 0.3-6 (10-04-2018)

o fix bugs when all elements of penalty.factor=0 in glmreg_fit or glmregNB. In this case, we set lambda=0 for each variable, and all penalty.factor=1. o fix bugs when all elements of penalty.factor.count=0 or in zipath. In this case, we set corresponding lambda = 0. o fix bugs when activeset=NULL in nclreg function

           CHANGES in `mpath' VERSION 0.3-7 (01-26-2019)

o changes were made to make offset in glmreg work. This includes changes in outloop.f, midloop.f, midloopGLM.f, lmnetGLM. o Changes were made in midloopGLM.f so that iterations run and check for convergency for b0 as well as beta
o Changes were made in zipath to make offset work o offset is now working in glmregNB, zipath, cv.glmreg, cv.glmregNB and cv.zipath

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.4-2.20 by Zhu Wang, a month ago

Report a bug at

Browse source code at

Authors: Zhu Wang , with contributions from Achim Zeileis , Simon Jackman , Brian Ripley , and Patrick Breheny

Documentation:   PDF Manual  

Task views: Machine Learning & Statistical Learning

GPL-2 license

Imports MASS, pscl, numDeriv, foreach, doParallel, bst, WeightSVM

Depends on methods, glmnet, pamr

Suggests zic, R.rsp, knitr, rmarkdown, gdata, e1071, SparseM, slam

Imported by bujar, ccboost.

See at CRAN