The LOGSELECT Procedure

Binary Logistic Regression

Note: Input data must be in a CAS table that is accessible in your CAS session. You must refer to this table by using a two-level name. The first level must be a CAS engine libref, and the second level must be the table name. For more information, see the sections Using CAS Sessions and CAS Engine Librefs and Loading a SAS Data Set onto a CAS Server in Chapter 3: Shared Concepts.

The following DATA step creates the data table getStarted, which consists of 100 observations on a dichotomous response variable (y), a character variable (C), and 10 continuous variables (x1x10), in your CAS session:

data mycas.getStarted;
   input C$ y x1-x10;
   datalines;
   D  0  10.2  6  1.6  38  15  2.4  20  0.8  8.5  3.9
   F  1  12.2  6  2.6  42  61  1.5  10  0.6  8.5  0.7
   D  1   7.7  1  2.1  38  61    1  90  0.6  7.5  5.2
   J  1  10.9  7  3.5  46  42  0.3   0  0.2    6  3.6
   E  0  17.3  6  3.8  26  47  0.9  10  0.4  1.5  4.7
   A  0  18.7  4  1.8   2  34  1.7  80    1  9.5  2.2
   B  0   7.2  1  0.3  48  61  1.1  10  0.8  3.5    4
   D  0   0.1  3  2.4   0  65  1.6  70  0.8  3.5  0.7
   H  1   2.4  4  0.7  38  22  0.2  20    0    3  4.2
   J  0  15.6  7  1.4   0  98  0.3   0    1    5  5.2
   J  0  11.1  3  2.4  42  55  2.2  60  0.6  4.5  0.7
   F  0     4  6  0.9   4  36  2.1  30  0.8    9  4.6
   A  0   6.2  2  1.8  14  79  1.1  70  0.2    0  5.1
   H  0   3.7  3  0.8  12  66  1.3  40  0.4  0.5  3.3
   A  1   9.2  3  2.3  48  51  2.3  50    0    6  5.4
   G  0    14  3    2  18  12  2.2   0    0    3  3.4
   E  1  19.5  6  3.7  26  81  0.1  30  0.6    5  4.8
   C  0    11  3  2.8  38   9  1.7  50  0.8  6.5  0.9
   I  0  15.3  7  2.2  20  98  2.7 100  0.4    7  0.8
   H  1   7.4  4  0.5  28  65  1.3  60  0.2  9.5  5.4
   F  0  11.4  2  1.4  42  12  2.4  10  0.4    1  4.5
   C  1  19.4  1  0.4  42   4  2.4  10    0  6.5  0.1
   G  0   5.9  4  2.6  12  57  0.8  50  0.4    2  5.8
   G  1  15.8  6  3.7  34   8  1.3  90  0.6  2.5  5.7
   I  0    10  3  1.9  16  80    3  90  0.4  9.5  1.9
   E  0  15.7  1  2.7  32  25  1.7  20  0.2  8.5    6
   G  0    11  5  2.9  48  53  0.1  50    1  3.5  1.2
   J  1  16.8  0  0.9  14  86  1.4  40  0.8    9    5
   D  1    11  4  3.2  48  63  2.8  90  0.6    0  2.2
   J  1   4.8  7  3.6  24   1  2.2  20    1  8.5  0.5
   J  1  10.4  5    2  42  56    1  20    0  3.5  4.2
   G  0  12.7  7  3.6   8  56  2.1  70    1  4.5  1.5
   G  0   6.8  1  3.2  30  27  0.6   0  0.8    2  5.6
   E  0   8.8  0  3.2   2  67  0.7  10  0.4    1    5
   I  1   0.2  0  2.9  10  41  2.3  60  0.2    9  0.3
   J  1   4.6  7  3.9  50  61  2.1  50  0.4    3  4.9
   J  1   2.3  2  3.2  36  98  0.1  40  0.6  4.5  4.3
   I  0  10.8  3  2.7  28  58  0.8  80  0.8    3    6
   B  0   9.3  2  3.3  44  44  0.3  50  0.8  5.5  0.4
   F  0   9.2  6  0.6   4  64  0.1   0  0.6  4.5  3.9
   D  0   7.4  0  2.9  14   0  0.2  30  0.8  7.5  4.5
   G  0  18.3  3  3.1   8  60  0.3  60  0.2    7  1.9
   F  0   5.3  4  0.2  48  63  2.3  80  0.2    8  5.2
   C  0   2.6  5  2.2  24   4  1.3  20    0    2  1.4
   F  0  13.8  4  3.6   4   7  1.1  10  0.4  3.5  1.9
   B  1  12.4  6  1.7  30  44  1.1  60  0.2    6  1.5
   I  0   1.3  1  1.3   8  53  1.1  70  0.6    7  0.8
   F  0  18.2  7  1.7  26  92  2.2  30    1  8.5  4.8
   J  0   5.2  2  2.2  18  12  1.4  90  0.8    4  4.9
   G  1   9.4  2  0.8  22  86  0.4  30  0.4    1  5.9
   J  1  10.4  2  1.7  26  31  2.4  10  0.2    7  1.6
   J  0    13  1  1.8  14  11  2.3  50  0.6  5.5  2.6
   A  0  17.9  4  3.1  46  58  2.6  90  0.6  1.5  3.2
   D  1  19.4  6    3  20  50  2.8 100  0.2    9  1.2
   I  0  19.6  3  3.6  22  19  1.2   0  0.6    5  4.1
   I  1     6  2  1.5  30  30  2.2  20  0.4  8.5  5.3
   G  0  13.8  1  2.7   0  52  2.4  20  0.8    6    2
   B  0  14.3  4  2.9  30  11  0.6  90  0.6  0.5  4.9
   E  0  15.6  0  0.4  38  79  0.4  80  0.4    1  3.3
   D  0    14  2    1  22  61    3  90  0.6    2  0.1
   C  1   9.4  5  0.4  12  53  1.7  40    0    3  1.1
   H  0  13.2  1  1.6  40  15  0.7  40  0.2    9  5.5
   A  0  13.5  5  2.4  18  89  1.6  20  0.4  9.5  4.7
   E  0   2.6  4  2.3  38   6  0.8  20  0.4    5  5.3
   E  0  12.4  3  1.3  26   8  2.8  10  0.8    6  5.8
   D  0   7.6  2  0.9  44  89  1.3  50  0.8    6  0.4
   I  0  12.7  1  2.3  42   6  2.4  10  0.4    1    3
   C  1  10.7  4  3.2  28  23  2.2  90  0.8  5.5  2.8
   H  0  10.1  2  2.3  10  62  0.9  50  0.4  2.5  3.7
   C  1  16.6  1  0.5  12  88  0.1  20  0.6  5.5  1.8
   I  1   0.2  3  2.2   8  71  1.7  80  0.4  0.5  5.5
   C  0  10.8  4  3.5  30  70  2.3  60  0.4  4.5  5.9
   F  0   7.1  4    3  14  63  2.4  70    0    7  3.1
   D  0  16.5  1  3.3  30  80  1.6  40    0  3.5  2.7
   H  0  17.1  7  2.1  30  45  1.5  60  0.6  0.5  2.8
   D  0   4.3  1  1.5  24  44    0  70    0    5  0.5
   H  0    15  2  0.2  14  87  1.8  50    0  4.5  4.7
   G  0  19.7  3  1.9  36  99  1.5  10  0.6    3  1.7
   H  1   2.8  6  0.6  34  21    2  60    1    9  4.7
   G  0  16.6  3  3.3  46   1  1.4  70  0.6  1.5  5.3
   E  0  11.7  5  2.7  48   4  0.9  60  0.8  4.5  1.6
   F  0  15.6  3  0.2   4  79  0.5   0  0.8  1.5  2.9
   C  1   5.3  6  1.4   8  64    2  80  0.4    9  4.2
   B  1   8.1  7  1.7  40  36  1.4  60  0.6    6  3.9
   I  0  14.8  2  3.2   8  37  0.4  10    0  4.5    3
   D  0   7.4  4    3  12   3  0.6  60  0.6    7  0.7
   D  0   4.8  3  2.3  44  41  1.9  60  0.2    3  3.1
   A  0   4.5  0  0.2   4  48  1.7  80  0.8    9  4.2
   D  0   6.9  6  3.3  14  92  0.5  40  0.4  7.5    5
   B  0   4.7  4  0.9  14  99  2.4  80    1  0.5  0.7
   I  1   7.5  4  2.1  20  79  0.4  40  0.4  2.5  0.7
   C  0   6.1  0  1.4  38  18  2.3  60  0.8  4.5  0.7
   C  0  18.3  1    1  26  98  2.7  20    1  8.5  0.5
   F  0  16.4  7  1.2  32  94  2.9  40  0.4  5.5  2.1
   I  0   9.4  2  2.3  32  42  0.2  70  0.4  8.5  0.3
   F  1  17.9  4  1.3  32  42    2  40  0.2    1  5.4
   H  0  14.9  3  1.6  36  74  2.6  60  0.2    1  2.3
   C  0  12.7  0  2.6   0  88  1.1  80  0.8  0.5  2.1
   F  0   5.4  4  1.5   2   1  1.8  70  0.4  5.5  3.6
   J  1  12.1  4  1.8  20  59  1.3  60  0.4    3  3.8
;

These statements assume that your CAS engine libref is named mycas, but you can substitute any appropriately defined CAS engine libref.

The following statements fit a logistic model to these data by using a classification effect for variable C and 10 regressor effects for x1x10. The ITHIST option displays a table that summarizes the steps of the optimization.

proc logselect data=mycas.getStarted ithist;
   class C;
   model y = C x1-x10;
run;

The output from this analysis is presented in Figure 11.1 through Figure 11.10.

Figure 11.1 displays the "Model Information" table. The LOGSELECT procedure uses a Newton-Raphson algorithm to model a binary distribution with a logit link function for the variable y. The CLASS variable C is parameterized using the GLM parameterization, which is the default.

Figure 11.1: Model Information

The LOGSELECT Procedure

Model Information
Data SourceGETSTARTED
Response Variabley
DistributionBinary
Link FunctionLogit
Optimization TechniqueNewton-Raphson with Ridging


Figure 11.2 displays the "Number of Observations" table. All 100 observations in the data table are used in the analysis.

Figure 11.2: Number of Observations

Number of Observations Read100
Number of Observations Used100


The "Response Profile" table in Figure 11.3 is produced by default. It shows the breakdown of the response variable levels by frequency. By default for binary data, the LOGSELECT procedure models the probability of the event with the lower OrderedValue value in the "Response Profile" table, as indicated by the note that follows the table. In this example, the values that are represented by y = 0 are modeled as the "successes" in the Bernoulli experiments.

Figure 11.3: Response Profile

Response Profile
Ordered
Value
yTotal
Frequency
1069
2131

Probability modeled is y = 0.



You can use the response-variable options in the MODEL statement to choose which value of the response variable to model.

The CLASS variable C has 10 unique formatted levels that are displayed in the "Class Level Information" table in Figure 11.4.

Figure 11.4: Class Level Information

Class Level Information
ClassLevelsValues
C10A B C D E F G H I J


The "Iteration History" table is shown in Figure 11.5. The Newton-Raphson algorithm with ridging converged after four iterations, not counting the initial setup iteration.

Figure 11.5: Iteration History

Iteration History
IterationEvaluationsObjective
Function
ChangeMaximum
Gradient
040.4493546916 0.410972
120.44364539920.005709290.081339
220.44350381090.000141590.003302
320.44350359330.000000225.623E-6
420.44350359330.000000001.59E-11


Figure 11.6 displays the final convergence status of the Newton-Raphson algorithm. The GCONV= relative convergence criterion is satisfied.

Figure 11.6: Convergence Status

Convergence criterion (GCONV=1E-8) satisfied.


Figure 11.7 displays the "Dimensions" table for this model. This table summarizes some important sizes of various model components. For example, it shows that the design matrix has 21 columns, which correspond to 1 column for the intercept, 10 columns for the effect associated with the classification variable C, and 1 column each for the continuous variables x1x10. However, the rank of the crossproducts matrix is only 20. Because the classification variable C uses GLM parameterization and because the model contains an intercept, there is one singularity in the crossproducts matrix of the model. Consequently, only 20 parameters enter the optimization.

Figure 11.7: Dimensions in Binomial Logistic Regression

Dimensions
Columns in Design21
Number of Effects12
Max Effect Columns10
Rank of Design20
Parameters in Optimization20


Figure 11.8 shows the global test for the null hypothesis that all model effects jointly do not affect the probability of success of the binary response. The test is significant (p = 0.0135). One or more of the model effects thus significantly affect the probability of observing an event.

Figure 11.8: Null Test

Testing Global Null Hypothesis: BETA=0
TestDFChi-SquarePr > ChiSq
Likelihood Ratio1935.11940.0135


The "Fit Statistics" table is shown in Figure 11.9. The –2 log likelihood at the converged estimates is 88.7007. You can use this value to compare the model to nested model alternatives by means of a likelihood ratio test. To compare models that are not nested, you can use information criteria such as AIC (Akaike’s information criterion), AICC (Akaike’s bias-corrected information criterion), and SBC (Schwarz Bayesian information criterion). These criteria penalize the –2 log likelihood for the number of parameters. Because of the large number of parameters relative to the number of observations, the discrepancy between the –2 log likelihood and, for example, AIC is substantial in this case.

Figure 11.9: Fit Statistics

Fit Statistics
-2 Log Likelihood88.70072
AIC (smaller is better)128.70072
AICC (smaller is better)139.33363
SBC (smaller is better)180.80412


However, the "Parameter Estimates" table in Figure 11.10 shows that many parameters have fairly large p-values, indicating that one or more of the model effects might not be necessary.

Figure 11.10: Parameter Estimates

Parameter Estimates
ParameterDFEstimateStandard
Error
Chi-SquarePr > ChiSq
Intercept11.2101391.7507500.47780.4894
C A13.4340711.6131424.53180.0333
C B12.1638301.4270832.29900.1295
C C10.6552051.0810240.36740.5445
C D12.4944811.1093665.05600.0245
C E13.2448601.4321405.13360.0235
C F13.6053711.3070257.60910.0058
C G12.0840851.1897643.06840.0798
C H12.9367791.2938765.15180.0232
C I11.3785221.0318991.78470.1816
C J00...
x110.0321810.0571000.31760.5730
x21-0.3677410.1538245.71520.0168
x310.3146400.3574140.77500.3787
x41-0.0519570.0244284.52390.0334
x51-0.0068280.0105550.41840.5177
x610.2538520.3784620.44990.5024
x71-0.0072330.0107340.45410.5004
x812.5370420.9941806.51220.0107
x91-0.1675020.1067892.46030.1168
x101-0.2221550.1577431.98340.1590


Finally, the procedure displays the table in Figure 11.11, which shows the amount of time (in seconds) that PROC LOGSELECT required to perform different tasks in the analysis.

Figure 11.11: Procedure Timing

Task Timing
TaskSecondsPercent
Setup and Parsing0.1423.67%
Levelization0.3256.20%
Model Initialization0.011.90%
SSCP Computation0.011.52%
Model Fitting0.0916.34%
Cleanup0.000.00%
Total0.57100.00%


Last updated: December 21, 2018