The HPLOGISTIC Procedure

Binary Logistic Regression

(View the complete code for this example.)

The following DATA step contains 100 observations on a dichotomous response variable (y), a character variable (C), and 10 continuous variables (x1–x10):

data 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
;

The following statements fit a logistic model to these data by using a classification effect for variable C and 10 regressor effects for x1–x10:

proc hplogistic data=getStarted;
   class C;
   model y = C x1-x10;
run;

The default output from this analysis is presented in Figure 55.1 through Figure 55.11.

The "Performance Information" table in Figure 55.1 shows that the procedure executes in single-machine mode—that is, the model is fit on the machine where the SAS session executes. This run of the HPLOGISTIC procedure was performed on a multicore machine with the same number of CPUs as there are threads; that is, one computational thread was spawned per CPU.

Figure 55.1: Performance Information

The HPLOGISTIC Procedure

Performance Information
Execution ModeSingle-Machine
Number of Threads4


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

Figure 55.2: Model Information

Model Information
Data SourceWORK.GETSTARTED
Response Variabley
Class ParameterizationGLM
DistributionBinary
Link FunctionLogit
Optimization TechniqueNewton-Raphson with Ridging


The CLASS variable C has 10 unique formatted levels, and these are displayed in the "Class Level Information" table in Figure 55.3.

Figure 55.3: Class Level Information

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


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

Figure 55.4: Number of Observations

Number of Observations Read100
Number of Observations Used100


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

Figure 55.5: Response Profile

Response Profile
Ordered
Value
yTotal
Frequency
1069
2131

You are modeling the probability that y='0'.



You can use the response-variable options in the MODEL statement to affect which value of the response variable is modeled.

Figure 55.6 displays the "Dimensions" table for this model. This table summarizes some important sizes of various model components. For example, it shows that there are 21 columns in the design matrix , which correspond to one column for the intercept, 10 columns for the effect associated with the classification variable C, and one column each for the continuous variables x1–x10. 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 55.6: Dimensions in Binomial Logistic Regression

Dimensions
Columns in X21
Number of Effects12
Max Effect Columns10
Rank of Cross-product Matrix20
Parameters in Optimization20


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

Figure 55.7: Iteration History

Iteration History
IterationEvaluationsObjective
Function
ChangeMax Gradient
040.4493546916.0.410972
120.44364539920.005709290.081339
220.44350381090.000141590.003302
320.44350359330.000000225.623E-6
420.44350359330.000000001.59E-11


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

Figure 55.8: Convergence Status

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


The "Fit Statistics" table is shown in Figure 55.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, information criteria such as AIC (Akaike’s information criterion), AICC (Akaike’s bias-corrected information criterion), and BIC (Schwarz’ Bayesian information criterion) are used. 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, say, AIC, is substantial in this case.

Figure 55.9: Fit Statistics

Fit Statistics
-2 Log Likelihood88.7007
AIC (smaller is better)128.70
AICC (smaller is better)139.33
BIC (smaller is better)180.80


Figure 55.10 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-value = 0.0135). One or more of the model effects thus significantly affects the probability of observing an event.

Figure 55.10: Null Test

Testing Global Null Hypothesis: BETA=0
TestChi-SquareDFPr > ChiSq
Likelihood Ratio35.1194190.0135


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

Figure 55.11: Parameter Estimates

Parameter Estimates
ParameterEstimateStandard
Error
DFt ValuePr > |t|
Intercept1.21011.7507Infty0.690.4894
C A3.43411.6131Infty2.130.0333
C B2.16381.4271Infty1.520.1295
C C0.65521.0810Infty0.610.5445
C D2.49451.1094Infty2.250.0245
C E3.24491.4321Infty2.270.0235
C F3.60541.3070Infty2.760.0058
C G2.08411.1898Infty1.750.0798
C H2.93681.2939Infty2.270.0232
C I1.37851.0319Infty1.340.1816
C J0....
x10.032180.05710Infty0.560.5730
x2-0.36770.1538Infty-2.390.0168
x30.31460.3574Infty0.880.3787
x4-0.051960.02443Infty-2.130.0334
x5-0.006830.01056Infty-0.650.5177
x60.25390.3785Infty0.670.5024
x7-0.007230.01073Infty-0.670.5004
x82.53700.9942Infty2.550.0107
x9-0.16750.1068Infty-1.570.1168
x10-0.22220.1577Infty-1.410.1590