The REGSELECT Procedure

Example 22.3 SCAD and MCP Selection

This example continues the investigation of the baseball data set that was introduced in the section Getting Started: REGSELECT Procedure and in LASSO and Elastic Net Selection. That example uses convex penalized selection—the LASSO and elastic net methods—to select an optimal model. In comparison, this example explores model selection by using folded concave penalized selection—the smoothly clipped absolute deviation (SCAD) and minimax concave penalty (MCP)—to select an optimal model.

The following statements perform SCAD selection for the baseball data:

   proc regselect data=mycas.baseball;
       partition roleVar = league(train='National' validate='American');
       class division;
       model logSalary = division nAtBat nHits nHome nRuns nRBI nBB
                         yrMajor crAtBat crHits crHome crRuns crRbi
                         crBB nOuts nAssts nError;
       selection  method = scad(choose=validate) details=all;
   run;

The PARTITION statement assigns observations to training and validation roles on the basis of the values of the input variable league. The METHOD=SCAD option requests SCAD selection, and the CHOOSE=VALIDATE suboption in the SELECTION statement selects the model that yields the lowest average square error (ASE) value for the validation data.

The "Selection Information" table in Output 22.3.1 shows the information that is relevant to SCAD selection, including the solver type (mixed integer linear programming, or MILP) and the ranges of the regularization parameters.

Output 22.3.1: Basic Information about SCAD Selection with MILP Solver

Basic Information about SCAD Selection

Number of Observations Read322
Number of Observations Used263
Number of Observations Used for Training124
Number of Observations Used for Validation139
Number of Observations Used for Testing0



Class Level Information
ClassLevelsValues
Division2East West



Dimensions
Number of Effects19
Number of Parameters19



Selection Information
Selection MethodSCAD
SolverMILP
Choose CriterionValidation ASE
Maximum Alpha5.7
Minimum Alpha2.7
Alpha Steps4
Maximum Lambda0.354142
Minimum Lambda0.0104153
Lambda Steps10
Lambda GridLOGSPACE


Recall that the SCAD estimator ModifyingAbove bold-italic beta With caret Superscript scad solves the following minimization problem:

ModifyingAbove bold-italic beta With caret Superscript scad Baseline equals arg min Underscript bold-italic beta Endscripts left-brace one half double-vertical-bar bold y minus bold upper X bold-italic beta double-vertical-bar Subscript 2 Superscript 2 Baseline plus n sigma-summation Underscript j equals 1 Overscript m Endscripts upper P Subscript lamda comma alpha Superscript scad Baseline left-parenthesis StartAbsoluteValue beta Subscript j Baseline EndAbsoluteValue right-parenthesis right-brace

where the upper P Subscript lamda comma alpha Baseline left-parenthesis dot right-parenthesis takes the form

upper P Subscript lamda comma alpha Superscript scad Baseline left-parenthesis theta right-parenthesis equals StartLayout Enlarged left-brace 1st Row 1st Column lamda theta 2nd Column if 3rd Column 0 less-than-or-equal-to theta less-than-or-equal-to lamda 2nd Row 1st Column StartFraction negative 1 Over 2 left-parenthesis alpha minus 1 right-parenthesis EndFraction left-parenthesis theta squared minus 2 alpha lamda theta plus lamda squared right-parenthesis 2nd Column if 3rd Column lamda less-than theta less-than alpha lamda 3rd Row 1st Column StartFraction alpha plus 1 Over 2 EndFraction lamda squared 2nd Column if 3rd Column theta greater-than alpha lamda EndLayout

This section explains in detail how PROC REGSELECT computes the reported regularization parameter ranges. The values of the grid points of alpha are StartSet 2.7 comma 3.7 comma 4.7 comma 5.7 EndSet by default. In addition, the number of nonintercept parameters is 19 minus 1 equals 18. Based on this information and the standard deviation of the response variable, the maximum and minimum values of lamda are computed in the following way by using the formulas in the section Folded Concave Penalized Selection in Chapter 2, Shared Concepts:

StartLayout 1st Row 1st Column lamda Subscript max 2nd Column equals y Subscript std Baseline times StartRoot StartFraction log p Over p EndFraction EndRoot equals 0.8837655 times StartRoot StartFraction log 18 Over 18 EndFraction EndRoot equals 0.354142 2nd Row 1st Column lamda Subscript min 2nd Column equals StartFraction y Subscript std Baseline Over 20 times StartRoot log p EndRoot EndFraction equals StartFraction 0.8837655 Over 20 times StartRoot log 18 EndRoot EndFraction equals 0.0104153 EndLayout

The default pattern of the lamda grid is such that the values of the grid are evenly spaced on the logarithmic scale, based on the computed lamda Subscript max and lamda Subscript min values.

The "Selection Summary" table in Output 22.3.2 shows the values of alpha and lamda together with the validation ASE and objective value at each step. The model that has the lowest validation ASE value is chosen as the final model.

Output 22.3.3 shows the details of this selected model, including fit statistics and parameter estimates. Notice that the model selected by the SCAD method has lower training and validation ASE values than the models selected by the LASSO method (Output 22.2.3) and the adaptive LASSO method (Output 22.2.6). This example demonstrates the advantages of nonconvex penalties over convex penalties.

Furthermore, you can find that for each fixed alpha, the number of effects increases as the value of lamda decreases to zero.

Output 22.3.2: Summary of SCAD Selection with MILP Solver

Selection Summary
StepAlphaLambdaNumber of
Effects
Validation
ASE
Objective
Value
Convergence
Status
12.70.354142171830.6201-519.8250992Success
22.70.239337207160.4730-242.5945784Success
32.70.16174944250.3750-120.7055361Success
42.70.109313893650.3564-68.35415912Success
52.70.073876776360.3511-44.77561786Success
62.70.049927579170.3712-34.64228793Success
72.70.033742175680.3684-30.37638496Success
82.70.0228037176100.3945-28.63035468Success
92.70.0154112628120.3387*-28.05955059Success
102.70.0104152764140.3627-27.90925295Success
.......
 ......
 ......
315.70.354142171830.6201-939.7201366Success
325.70.239337207160.4730-434.3757136Success
335.70.16174944250.3913-206.6854889Success
345.70.109313893660.3592-105.437455Success
355.70.073876776360.3521-61.19314243Success
365.70.049927579180.3493-41.82085734Success
375.70.033742175680.3564-33.43914551Success
385.70.022803717690.3634-29.87208293Success
395.70.0154112628100.3909-28.44965299Success
405.70.0104152764140.3644-28.01750436Success
* Optimal Value of Criterion



Reason
The model at Step 9, where Alpha = 2.7 and Lambda = 0.0154112628, is selected.



LabelEffects
Selected Effects:Intercept Division_West nHits nHome nRuns nRBI nBB YrMajor CrAtBat CrBB nOuts nError


Output 22.3.3: Details of Model Selected by SCAD with MILP Solver

Details of the Model Selected by SCAD Method

Root MSE0.60291
R-Square0.57622
Adj R-Sq0.53460
AIC11.89325
AICC15.20234
SBC-80.26338
ASE (Train)0.32832
ASE (Validate)0.33873



Parameter Estimates
ParameterDFEstimate
Intercept14.252427
Division_West1-0.179169
nHits10.007232
nHome10.029747
nRuns1-0.007002
nRBI1-0.004489
nBB10.014063
YrMajor10.095316
CrAtBat10.000109
CrBB1-0.000964
nOuts10.000160
nError1-0.007590


You can also directly supply your own choice of regularization parameters to obtain a model fit. The following program produces an equivalent final model by taking the selected alpha and lamda values from the previous analysis:

   proc regselect data=mycas.baseball;
       partition roleVar = league(train='National' validate='American');
       class division;
       model logSalary = division nAtBat nHits nHome nRuns nRBI nBB
                         yrMajor crAtBat crHits crHome crRuns crRbi
                         crBB nOuts nAssts nError;
      selection  method = scad(alpha=2.7  lambda=0.0154112628
                 solver=MILP  choose=validate);
   run;

Suppose you have a good estimate of the regularization parameter alpha, and you want to use the nonlinear programming (NLP) solver instead of the default MILP solver to search for the best regularization parameter lamda. You can perform SCAD selection in the following way:

   proc regselect data=mycas.baseball;
       partition roleVar = league(train='National' validate='American');
       class division;
       model logSalary = division nAtBat nHits nHome nRuns nRBI nBB
                         yrMajor crAtBat crHits crHome crRuns crRbi
                         crBB nOuts nAssts nError;
       selection  method = scad(alpha=2.7 solver=NLP
                  choose=validate) details=all;
   run;

The "Selection Summary" table in Output 22.3.4 shows the optimal validation ASE as well as the value of the objective function for the SCAD selection with the NLP solver. Both values are larger than the ones that are produced by using the MILP solver, shown in Output 22.3.2. In general, the NLP solver is faster but more prone to return local minima because of possible nonconvexity of the reformulated objective function.

Output 22.3.4: Summary of SCAD Selection with NLP Solver

The REGSELECT Procedure
 
Selection Details

Selection Summary
StepAlpha Lambda Number of
Effects
Validation
ASE
Objective
Value
Convergence
Status
12.70.354142171830.6201-519.8250988Success
22.70.239337207160.4730-242.5945766Success
32.70.16174944250.3750-120.7055354Success
42.70.109313893680.3925-67.45873965Success
52.70.073876776380.3503*-44.63944487Success
62.70.049927579160.3835-34.43023654Success
72.70.0337421756100.3700-30.11778983Success
82.70.0228037176140.3740-28.04965104Success
92.70.0154112628130.3737-27.90175019Success
102.70.0104152764160.3529-27.83148384Success
* Optimal Value of Criterion

The model at Step 5, where Alpha = 2.7 and Lambda = 0.0738767763, is selected.

Selected Effects:Intercept Division_East Division_West nAtBat nHome nBB YrMajor nError


Like SCAD selection, MCP selection also applies a nonconvex penalty to the penalized least squares objective function. The penalty function upper P Subscript lamda comma alpha Baseline left-parenthesis dot right-parenthesis takes the following form:

upper P Subscript lamda comma alpha Superscript mcp Baseline left-parenthesis theta right-parenthesis equals StartLayout Enlarged left-brace 1st Row 1st Column lamda theta minus StartFraction 1 Over 2 alpha EndFraction theta squared 2nd Column if 3rd Column 0 less-than-or-equal-to theta less-than-or-equal-to alpha lamda 2nd Row 1st Column StartFraction alpha Over 2 EndFraction lamda squared 2nd Column if 3rd Column theta greater-than alpha lamda EndLayout

The following statements perform MCP selection with a fixed alpha value of 1.7. The default solver is MILP.

   proc regselect data=mycas.baseball;
       partition roleVar = league(train='National' validate='American');
       class division;
       model logSalary = division nAtBat nHits nHome nRuns nRBI nBB
                         yrMajor crAtBat crHits crHome crRuns crRbi
                         crBB nOuts nAssts nError;
       selection  method = mcp(alpha=1.7 choose=validate) details=all;
   run;

Output 22.3.6 shows that the model selected by MCP method also has lower training and validation ASE values than those produced by the LASSO method (Output 22.2.3) and the adaptive LASSO method (Output 22.2.6).

Output 22.3.5: Summary of MCP Selection with MILP Solver

The REGSELECT Procedure
 
Selection Details

Selection Summary
StepAlpha Lambda Number of
Effects
Validation
ASE
Objective
Value
Convergence
Status
11.70.354142171820.4843-4.780739689Success
21.70.239337207130.3575-12.4381079Success
31.70.16174944230.3566-18.97905906Success
41.70.109313893640.3847-22.07263121Success
51.70.073876776350.3775-24.32243067Success
61.70.049927579170.3711-25.6045759Success
71.70.033742175690.3980-26.47039039Success
81.70.0228037176120.3387*-27.07526271Success
91.70.0154112628140.3627-27.45939653Success
101.70.0104152764140.3627-27.63619212Success
* Optimal Value of Criterion

The model at Step 8, where Alpha = 1.7 and Lambda = 0.0228037176, is selected.

Selected Effects:Intercept Division_West nHits nHome nRuns nRBI nBB YrMajor CrAtBat CrBB nOuts nError


Output 22.3.6: Details of Model Selected by MCP with MILP Solver

The REGSELECT Procedure
 
Selected Model

Root MSE0.60291
R-Square0.57622
Adj R-Sq0.53460
AIC11.89325
AICC15.20234
SBC-80.26338
ASE (Train)0.32832
ASE (Validate)0.33873

Parameter Estimates
ParameterDFEstimate
Intercept14.252427
Division_West1-0.179169
nHits10.007232
nHome10.029747
nRuns1-0.007002
nRBI1-0.004489
nBB10.014063
YrMajor10.095316
CrAtBat10.000109
CrBB1-0.000964
nOuts10.000160
nError1-0.007590


For more information about the SCAD and MCP selection methods, see the section Folded Concave Penalized Selection in Chapter 2, Shared Concepts.

Last updated: September 13, 2022