There are two types of shrinkage (aka penalization, aka regularization): L1 (or lasso) regularization which adds an absolute value penalty, and L2 regularization (or ridging) that adds a quadratic penalty. A combination of these is the so-called elastic net. L1 regularization (lasso) and the combination (elastic net) are available in PROC HPGENSELECT. L2 regularization (ridging) should be possible in NLMIXED by simply adding the penalty in the log likelihood. For example, these statements add the quadratic penalty on the parameters of a logistic model using a 0.1 shrinkage parameter which could, of course, be adjusted. The data is the remission data in the first example in the LOGISTIC documentation.
proc nlmixed data=remission; parms b0=0 b1=0 b2=0 b3=0; p=1/(1+exp(-(b0+b1*li+b2*cell+b3*temp))); ll=(remiss=1)*log(p)+(remiss=0)*log(1-p) - 0.1*sqrt(b1**2+b2**2+b3**2+1e-8); model remiss ~ general(ll); run;
Compare the results to those from the unpenalized (unridged) logistic model:
proc logistic data=remission; model remiss(event='1') = cell li temp; run;
... View more