REGSELECT Procedure

Example 30.3 SCAD and MCP Selection

(View the complete code for this example.)

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=mylib.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 30.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 30.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 solves the following minimization problem:

where the takes the form

This section explains in detail how PROC REGSELECT computes the reported regularization parameter ranges. The values of the grid points of are by default. In addition, the number of nonintercept parameters is . Based on this information and the standard deviation of the response variable, the maximum and minimum values of are computed in the following way by using the formulas in the section Folded Concave Penalized Selection in Chapter 2, Shared Concepts:

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

The "Selection Summary" table in Output 30.3.2 shows the values of and 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 30.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 30.2.3) and the adaptive LASSO method (Output 30.2.6). This example demonstrates the advantages of nonconvex penalties over convex penalties.

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

Output 30.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.8250989Success
22.70.239337207160.4730-242.594577Success
32.70.16174944250.3750-120.7055356Success
42.70.109313893650.3564-68.35415937Success
52.70.073876776360.3511-44.77561769Success
62.70.049927579170.3712-34.64228789Success
72.70.033742175680.3684-30.37638497Success
82.70.0228037176100.3945-28.63035462Success
92.70.0154112628120.3387*-28.05955057Success
102.70.0104152764140.3627-27.90925291Success
.......
 ......
 ......
315.70.354142171830.6201-939.7201363Success
325.70.239337207160.4730-434.3757135Success
335.70.16174944250.3913-206.6854888Success
345.70.109313893660.3592-105.4374547Success
355.70.073876776360.3521-61.19314233Success
365.70.049927579180.3493-41.82085843Success
375.70.033742175680.3564-33.43914549Success
385.70.022803717690.3634-29.87208286Success
395.70.0154112628100.3909-28.44965297Success
405.70.0104152764140.3644-28.01750434Success
* Optimal Value of Criterion



Reason
The model at Step 9, where Alpha = 2.7 and Lambda = 0.0154112628, is selected.
Selected model converged. All regularization parameters succeeded.



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


Output 30.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 and values from the previous analysis:

proc regselect data=mylib.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 , and you want to use the nonlinear programming (NLP) solver instead of the default MILP solver to search for the best regularization parameter . You can perform SCAD selection in the following way:

proc regselect data=mylib.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 30.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 30.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 30.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.3541421718190.3630-27.80493462Success
22.70.2393372071190.3630-27.80493462Success
32.70.161749442190.3630-27.80493462Success
42.70.109313893660.3925-67.45873747Success
52.70.073876776350.3503*-44.63943247Success
62.70.049927579180.3765-33.8969659Success
72.70.0337421756110.3648-29.88490975Success
82.70.0228037176130.3729-28.09912771Success
92.70.0154112628160.3583-27.94140961Success
102.70.0104152764180.3627-27.8278866Success
* Optimal Value of Criterion

The model at Step 5, where Alpha = 2.7 and Lambda = 0.0738767763, is selected.
Selected model converged. All regularization parameters succeeded.

Selected Effects:Intercept nAtBat nHome nBB YrMajor


Like SCAD selection, MCP selection also applies a nonconvex penalty to the penalized least squares objective function. The penalty function takes the following form:

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

proc regselect data=mylib.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 30.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 30.2.3) and the adaptive LASSO method (Output 30.2.6).

Output 30.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.60457593Success
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 model converged. All regularization parameters succeeded.

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


Output 30.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: May 14, 2026