Algorithms for fitting model-based penalized coefficient paths. Currently the models include penalized Poisson, negative binomial, zero-inflated Poisson and zero-inflated negative binomial regression models. The penalties include least absolute shrinkage and selection operator (LASSO), smoothly clipped absolute deviation (SCAD) and minimax concave penalty (MCP), and each possibly combining with L_2 penalty.
See Wang et al. (2014)

```
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(lambda.zero[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 penalty.factor.zero 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)

```
to
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 plot.it=TRUE 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 penalty.factor.zero=0 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