This chapter uses two data files. They are
https://stats.idre.ucla.edu/wp-content/uploads/2016/02/lowbwt11.sas7bdat for the first example and
https://stats.idre.ucla.edu/wp-content/uploads/2016/02/bbdm13.sas7bdat for the second example. A new procedure proc mdc (multinomial discrete choice) in SAS 8.2 is the procedure that we will use mainly for parameter estimates. One feature that proc mdc lacks is the class statement. Therefore, we have to create dummy variables for a categorical variable through a data step. For example, in a data step in section 7.3, we created two dummy variables for variable race and this new data set will be used throughout the first two sections. The other issue is that the diagnostic graphs are not generated by the procedure. We will have to use proc logistic as mentioned in the book to carry out analyses in section 7.4 and 7.7.
7.3 An example of the use of the logistic regression model in a 1-1 matched study
Table 7.1 on page 232.
data lowbwt11a; set lowbwt11; race2 = (race=2); race3 = (race=3); lwt10 = lwt/10; run; ods listing close; /*first row on variable lwt*/ proc mdc data = lowbwt11a ; model low = lwt /type = clogit nchoice=2 ; id pair; ods output ParameterEstimates = parms1; run; /*obtain odds ratio for 10 pound increase in weight*/ proc mdc data = lowbwt11a ; model low = lwt10 /type = clogit nchoice=2; id pair; ods output ParameterEstimates = parms2; run; /*second row on variable smoke*/ proc mdc data = lowbwt11a ; model low = smoke /type = clogit nchoice=2; id pair; ods output ParameterEstimates = parms3; run; /*on variable race, overall*/ proc mdc data = lowbwt11a ; model low = race2 race3 /type = clogit nchoice=2; id pair; ods output ParameterEstimates = parms4; run; /*on variable ptd*/ proc mdc data = lowbwt11a ; model low = ptd /type = clogit nchoice=2; id pair; ods output ParameterEstimates = parms5; run; /*on variable ht*/ proc mdc data = lowbwt11a ; model low = ht /type = clogit nchoice=2; id pair; ods output ParameterEstimates = parms6; run; /*on variable ui*/ proc mdc data = lowbwt11a ; model low = ui /type = clogit nchoice=2; id pair; ods output ParameterEstimates = parms7; run; ods listing; /*putting all the estimates together*/ data table7_1; set parms1 parms2 parms3 parms4 parms5 parms6 parms7; or = exp(estimate); cilow = exp(estimate - 1.96*stderr); cihigh = exp(estimate + 1.96*stderr); run; proc print data = table7_1 noobs; var parameter estimate stderr or cilow cihigh; run;
Parameter Estimate StdErr or cilow cihigh lwt -0.009375 0.006165 0.99067 0.97877 1.0027 lwt10 -0.0937 0.0617 0.91051 0.80687 1.0275 smoke 1.0116 0.4129 2.75000 1.22433 6.1769 race2 0.0870 0.5233 1.09095 0.39116 3.0427 race3 -0.0290 0.3968 0.97142 0.44632 2.1143 ptd 1.3218 0.5627 3.75000 1.24458 11.2989 ht 0.8473 0.6901 2.33333 0.60337 9.0234 ui 1.0986 0.5774 3.00000 0.96754 9.3019
Last column of Table 7.1
proc sql; create table dispairs as select *, sum(smoke) as smoke_count, sum(ptd) as ptd_count, sum(ht) as ht_count, sum(ui) as ui_count from lowbwt11a group by pair; quit; proc freq data = dispairs; where smoke_count = 1; tables low*smoke /nopercent nocol norow ; run; proc freq data = dispairs; where ptd_count = 1; tables low*ptd /nopercent nocol norow ; run; proc freq data = dispairs; where ht_count = 1; tables low*ht /nopercent nocol norow ; run; proc freq data = dispairs; where ui_count = 1; tables low*ui /nopercent nocol norow ; run;
Table of low by smoke
low smoke
Frequency 0 1 Total
--------- -------- --------
0 22 8 30
--------- -------- --------
1 8 22 30
--------- -------- --------
Total 30 30 60
Table of low by ptd
low ptd
Frequency 0 1 Total
--------- -------- --------
0 15 4 19
--------- -------- --------
1 4 15 19
--------- -------- --------
Total 19 19 38
Table of low by ht
low ht
Frequency 0 1 Total
--------- -------- --------
0 7 3 10
--------- -------- --------
1 3 7 10
--------- -------- --------
Total 10 10 20
Table of low by ui
low ui
Frequency 0 1 Total
--------- -------- --------
0 12 4 16
--------- -------- --------
1 4 12 16
--------- -------- --------
Total 16 16 32
Table 7.2 on page 232.
proc mdc data = lowbwt11a ; model low = lwt smoke race2 race3 ptd ht ui /type = clogit nchoice=2; id pair; run;
The MDC Procedure
Conditional Logit Estimates
Model Fit Summary
Dependent Variable low
Number of Observations 56
Number of Cases 112
Log Likelihood -25.79427
Maximum Absolute Gradient 2.30684E-6
Number of Iterations 5
Optimization Method Newton-Raphson
AIC 65.58854
Schwarz Criterion 79.76600
Discrete Response Profile
Index CHOICE Frequency Percent
0 1 0 0.00
1 2 56 100.00
Goodness-of-Fit Measures for Discrete Choice Models
Measure Value Formula
Likelihood Ratio (R) 26.044 2 * (LogL - LogL0)
Upper Bound of R (U) 77.632 - 2 * LogL0
Aldrich-Nelson 0.3174 R / (R+N)
Cragg-Uhler 1 0.3719 1 - exp(-R/N)
Cragg-Uhler 2 0.4959 (1-exp(-R/N)) / (1-exp(-U/N))
Estrella 0.4325 1 - (1-R/U)^(U/N)
Adjusted Estrella 0.2084 1 - ((LogL-K)/LogL0)^(-2/N*LogL0)
McFadden's LRI 0.3355 R / U
Veall-Zimmermann 0.5464 (R * (U+N)) / (U * (R+N))
N = # of observations, K = # of regressors
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
lwt 1 -0.0184 0.0101 -1.82 0.0683 -2.31E-6
smoke 1 1.4007 0.6278 2.23 0.0257 3.741E-8
race2 1 0.5714 0.6896 0.83 0.4074 8.89E-10
race3 1 -0.0253 0.6992 -0.04 0.9711 -2.35E-9
ptd 1 1.8080 0.7887 2.29 0.0219 4.792E-8
ht 1 2.3612 1.0861 2.17 0.0297 1.5E-8
ui 1 1.4019 0.6962 2.01 0.0440 1.25E-8
Table 7.3 on page 233.
proc mdc data = lowbwt11a ; model low = lwt smoke ptd ht ui /type = clogit nchoice=2; id pair; run;
The MDC Procedure
Conditional Logit Estimates
Model Fit Summary
Dependent Variable low
Number of Observations 56
Number of Cases 112
Log Likelihood -26.23687
Maximum Absolute Gradient 8.97556E-7
Number of Iterations 5
Optimization Method Newton-Raphson
AIC 62.47374
Schwarz Criterion 72.60050
Discrete Response Profile
Index CHOICE Frequency Percent
0 1 0 0.00
1 2 56 100.00
Goodness-of-Fit Measures for Discrete Choice Models
Measure Value Formula
Likelihood Ratio (R) 25.159 2 * (LogL - LogL0)
Upper Bound of R (U) 77.632 - 2 * LogL0
Aldrich-Nelson 0.3100 R / (R+N)
Cragg-Uhler 1 0.3619 1 - exp(-R/N)
Cragg-Uhler 2 0.4825 (1-exp(-R/N)) / (1-exp(-U/N))
Estrella 0.4190 1 - (1-R/U)^(U/N)
Adjusted Estrella 0.2600 1 - ((LogL-K)/LogL0)^(-2/N*LogL0)
McFadden's LRI 0.3241 R / U
Veall-Zimmermann 0.5336 (R * (U+N)) / (U * (R+N))
N = # of observations, K = # of regressors
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
lwt 1 -0.0151 0.008147 -1.85 0.0641 -8.98E-7
smoke 1 1.4796 0.5620 2.63 0.0085 1.571E-8
ptd 1 1.6706 0.7468 2.24 0.0253 1.768E-8
ht 1 2.3294 1.0025 2.32 0.0202 4.155E-9
ui 1 1.3449 0.6938 1.94 0.0526 6.344E-9
Table 7.4 on page 233. SAS doesn’t have a procedure that handles fractional polynomial regressions. We can only verify the table here, instead of creating it. Notice the deviance is -2*(Log Likelihood). For example, in the first model below, we have -2*(-28.14929) = 56.29858.
data test7_4; set lowbwt11a; lwt3 = lwt**3; lwt31 = lwt3*log(lwt); run;proc mdc data = test7_4 ; model low = smoke ptd ht ui /type = clogit nchoice=2; id pair; run; Model Fit Summary Dependent Variable low Number of Observations 56 Number of Cases 112 Log Likelihood -28.14929 Maximum Absolute Gradient 2.7136E-11 Number of Iterations 5 Optimization Method Newton-Raphson AIC 64.29857 Schwarz Criterion 72.39998Model 1: without variable lwt.
Model 2: with variable lwt as a linear term.
proc mdc data = test7_4 ;
model low = smoke lwt ptd ht ui /type = clogit nchoice=2;
id pair;
run;
Model Fit Summary
Dependent Variable low
Number of Observations 56
Number of Cases 112
Log Likelihood -26.23687
Maximum Absolute Gradient 8.97556E-7
Number of Iterations 5
Optimization Method Newton-Raphson
AIC 62.47374
Schwarz Criterion 72.60050
The deviance is -2*(-26.23687) = 52.47374. The difference in deviance between the first model and the current one is 56.299-52.474 = 3.825. The p-value is computed based on chi-squared distribution with 1 degree of freedom. This gives p-value 0.050493.
Model 3: with variable lwt as a third polynomial term.
proc mdc data = test7_4 ;
model low = smoke lwt3 ptd ht ui /type = clogit nchoice=2;
id pair;
run;
Model Fit Summary
Dependent Variable low
Number of Observations 56
Number of Cases 112
Log Likelihood -25.77035
Maximum Absolute Gradient 0.05711
Number of Iterations 5
Optimization Method Newton-Raphson
AIC 61.54070
Schwarz Criterion 71.66746
The deviance is -2*(-25.77035) =51.5407. The difference in deviance between the second model and the current one is 52.474 – 51.5407 = .9333. The p-value is computed based on chi-squared distribution with 1 degree of freedom. This gives p-value 0.334.
Model 4: with variable lwt transformed as lwt^3*ln(lwt).
proc mdc data = test7_4 ;
model low = smoke lwt3 lwt31 ptd ht ui /type = clogit nchoice=2;
id pair;
run;
Model Fit Summary
Dependent Variable low
Number of Observations 56
Number of Cases 112
Log Likelihood -25.61927
Maximum Absolute Gradient 1.51806E-6
Number of Iterations 6
Optimization Method Newton-Raphson
AIC 63.23855
Schwarz Criterion 75.39066
The deviance is -2*(-25.61927) =51.23854. The difference in deviance between the third model and the current one is 51.5407 – 51.23854 = .3025 and the difference between the second model and the current one is 52.474 – 51.239 = 1.235. The p-value is computed based on chi-squared distribution with 2 degrees of freedom and the difference in deviance between the third model and the current one. This gives a p-value of 0.860.
Table 7.5 on page 234.
proc univariate data = lowbwt11a ; var lwt; run; (Some output omitted) Quantile Estimate 100% Max 241.0 99% 235.0 95% 190.0 90% 168.0 75% Q3 136.5 50% Median 120.0 25% Q1 106.5 10% 95.0 5% 91.0 1% 85.0 0% Min 80.0
data table7_5; set lowbwt11a; lwt1 = (lwt <= 106.5); lwt2 = (lwt >106.5 & lwt <=120); lwt3 = (lwt >120 & lwt <=136.5); lwt4 = (lwt >136.5 ); run; proc mdc data = table7_5; model low = lwt2-lwt4 smoke ptd ht ui /type = clogit nchoice=2; id pair; run;
Conditional Logit Estimates
Goodness-of-Fit Measures for Discrete Choice Models
Measure Value Formula
Veall-Zimmermann 0.5096 (R * (U+N)) / (U * (R+N))
N = # of observations, K = # of regressors
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
lwt2 1 -0.3991 0.6635 -0.60 0.5475 -2.16E-9
lwt3 1 -0.4430 0.6718 -0.66 0.5096 1.085E-9
lwt4 1 -0.8887 0.6255 -1.42 0.1553 -2.14E-9
smoke 1 1.3527 0.5568 2.43 0.0151 3.108E-9
ptd 1 1.7398 0.7462 2.33 0.0197 4.2E-9
ht 1 1.8926 0.9647 1.96 0.0498 1.351E-9
ui 1 1.3162 0.6886 1.91 0.0559 1.549E-9
Figure 7.1 on page 234.
data fig7_1; input coef2go lwt2go; datalines; 0 93.25 -.399 113.25 -.433 128.25 -.889 188.75 ; run; symbol i = join c = black; axis1 label = (a = 90) minor = none; proc gplot data = fig7_1; plot coef2go*lwt2go /vaxis=axis1; label coef2go = "Estimated Coefficient"; label lwt2go = "Weight at the Last Menstrual Period"; run; quit;

Table 7.6 on page 235. This is fairly long table comparing a lot of possible interaction terms with model presented in Table 7.3. We only present code for the first row of the table testing interaction term on age and lwt. The other rows of the table can be generated exactly the same way and we omit them here.
data table7_6; set lowbwt11a; agelwt = age*lwt; run; ods listing close; proc mdc data = table7_6; model low = lwt smoke ptd ht ui /type = clogit nchoice=2; id pair; ods output FitSummary = w_o_interacton; run; proc mdc data = table7_6; model low = lwt smoke ptd ht ui agelwt/type = clogit nchoice=2; id pair; ods output FitSummary = w_interaction; run; ods listing; proc sql; create table row1 as select w1.cvalue1 as w_o_ll, w2.cvalue1 as w_ll from w_o_interacton as w1, w_interaction as w2 where w1.label1="Log Likelihood" & w2.label1="Log Likelihood"; quit; data row1; set row1; g = 2*(w_ll - w_o_ll); p = 1- PROBCHI(g, 1); output; run; proc print data = row1; run; Obs w_o_ll w_ll t p 1 -26.23687 -25.98409 0.50556 0.47707
7.4 Assessment of fit in a matched study
As we have mentioned at the beginning of this chapter, SAS proc mdc does not offer diagnostic statistics. We follow the method discussed in the book using the difference variables.
Figure 7.2, Figure 7.3 and Figure 7.4.
data assess; set lowbwt11a; retain lwt1 smoke1 ptd1 ht1 ui1; by pair; if first.pair then do; lwt1 = lwt; smoke1 = smoke; ptd1 = ptd; ht1 = ht; ui1 = ui; end; else do; lwt1 = lwt - lwt1; smoke1 = smoke - smoke1; ptd1 = ptd - ptd1; ht1 = ht - ht1; ui1 = ui - ui1; output; end; keep low lwt1 smoke1 ptd1 ht1 ui1 ; run; proc logistic data = assess; model low = lwt1 smoke1 ptd1 ht1 ui1 /noint; output out = test difchisq = _dx2 c = dbeta p = p ; run; goptions reset = all; symbol v = circle c = black; axis1 label = (a=90) minor = none; proc gplot data = test; plot _dx2*p /vaxis = axis1; plot dbeta*p /vaxis=axis1; bubble _dx2*p = dbeta / bsize = 10 vaxis=axis1; run; quit;
Table 7.7 on page 240.
proc logistic data = assess; model low = lwt1 smoke1 ptd1 ht1 ui1 /noint; output out = test difchisq = _dx2 c = dbeta p = p h = h ; run; proc print data = test (drop=_level_); where dbeta >.4; format lwt1 smoke1 ptd1 ht1 ui1 4.0 p dbeta difchisq _dx2 h 4.2; run;
Obs low lwt1 smoke1 ptd1 ht1 ui1 p h dbeta _dx2 9 1 48 -1 0 0 0 0.10 0.05 0.50 9.53 16 1 -49 1 -1 0 -1 0.31 0.24 0.92 2.92 27 1 35 1 0 -1 0 0.20 0.20 1.25 4.97 34 1 38 -1 0 0 0 0.11 0.05 0.42 8.19
Table 7.8 on page 241 .
proc logistic data = assess; model low = lwt1 smoke1 ptd1 ht1 ui1 /noint AGGREGATE scale=none; run;
Deviance and Pearson Goodness-of-Fit Statistics
Criterion DF Value Value/DF Pr > ChiSq
Deviance 51 52.4737 1.0289 0.4167
Pearson 51 50.7566 0.9952 0.4833
Analysis of Maximum Likelihood Estimates
Standard Wald
Parameter DF Estimate Error Chi-Square Pr > ChiSq
lwt1 1 -0.0151 0.00815 3.4281 0.0641
smoke1 1 1.4796 0.5620 6.9305 0.0085
ptd1 1 1.6706 0.7468 5.0041 0.0253
ht1 1 2.3294 1.0025 5.3984 0.0202
ui1 1 1.3449 0.6938 3.7571 0.0526
data table7_8; set assess; id = _n_; run; proc logistic data = table7_8; model low = lwt1 smoke1 ptd1 ht1 ui1 /noint AGGREGATE scale=none; where id ~=9; run;
Deviance and Pearson Goodness-of-Fit Statistics
Criterion DF Value Value/DF Pr > ChiSq
Deviance 50 47.3316 0.9466 0.5811
Pearson 50 48.5205 0.9704 0.5329
Analysis of Maximum Likelihood Estimates
Standard Wald
Parameter DF Estimate Error Chi-Square Pr > ChiSq
lwt1 1 -0.0196 0.00910 4.6473 0.0311
smoke1 1 1.8781 0.6545 8.2334 0.0041
ptd1 1 1.8831 0.8279 5.1732 0.0229
ht1 1 2.7193 1.1184 5.9123 0.0150
ui1 1 1.4979 0.7317 4.1904 0.0407
proc logistic data = table7_8;
model low = lwt1 smoke1 ptd1 ht1 ui1 /noint AGGREGATE scale=none;
where id ~=16;
run;
Deviance and Pearson Goodness-of-Fit Statistics
Criterion DF Value Value/DF Pr > ChiSq
Deviance 50 49.4140 0.9883 0.4968
Pearson 50 46.3723 0.9274 0.6197
Analysis of Maximum Likelihood Estimates
Standard Wald
Parameter DF Estimate Error Chi-Square Pr > ChiSq
lwt1 1 -0.0126 0.00836 2.2653 0.1323
smoke1 1 1.3907 0.5681 5.9933 0.0144
ptd1 1 2.1109 0.8577 6.0563 0.0139
ht1 1 2.4069 1.0304 5.4564 0.0195
ui1 1 1.7624 0.7886 4.9950 0.0254
proc logistic data = table7_8;
model low = lwt1 smoke1 ptd1 ht1 ui1 /noint AGGREGATE scale=none;
where id ~=27;
run;
Deviance and Pearson Goodness-of-Fit Statistics
Criterion DF Value Value/DF Pr > ChiSq
Deviance 50 48.1354 0.9627 0.5485
Pearson 50 49.0020 0.9800 0.5134
Analysis of Maximum Likelihood Estimates
Standard Wald
Parameter DF Estimate Error Chi-Square Pr > ChiSq
lwt1 1 -0.0211 0.00917 5.2675 0.0217
smoke1 1 1.3894 0.5888 5.5673 0.0183
ptd1 1 1.8071 0.7963 5.1497 0.0233
ht1 1 3.5595 1.4073 6.3977 0.0114
ui1 1 1.5107 0.7336 4.2412 0.0395
proc logistic data = table7_8;
model low = lwt1 smoke1 ptd1 ht1 ui1 /noint AGGREGATE scale=none;
where id ~=34;
run;
Deviance and Pearson Goodness-of-Fit Statistics
Criterion DF Value Value/DF Pr > ChiSq
Deviance 50 47.6911 0.9538 0.5665
Pearson 50 50.3025 1.0060 0.4614
Analysis of Maximum Likelihood Estimates
Standard Wald
Parameter DF Estimate Error Chi-Square Pr > ChiSq
lwt1 1 -0.0188 0.00896 4.3979 0.0360
smoke1 1 1.8548 0.6487 8.1742 0.0042
ptd1 1 1.8630 0.8191 5.1736 0.0229
ht1 1 2.6686 1.1029 5.8548 0.0155
ui1 1 1.4866 0.7284 4.1654 0.0413
Table 7.9 on page 242.
proc logistic data = table7_8;
model low = lwt1 smoke1 ptd1 ht1 ui1 /noint clodds = wald;
units lwt1 = 10;
run;
Analysis of Maximum Likelihood Estimates
Standard Wald
Parameter DF Estimate Error Chi-Square Pr > ChiSq
lwt1 1 -0.0151 0.00815 3.4281 0.0641
smoke1 1 1.4796 0.5620 6.9305 0.0085
ptd1 1 1.6706 0.7468 5.0041 0.0253
ht1 1 2.3294 1.0025 5.3984 0.0202
ui1 1 1.3449 0.6938 3.7571 0.0526
Odds Ratio Estimates
Point 95% Wald
Effect Estimate Confidence Limits
lwt1 0.985 0.969 1.001
smoke1 4.391 1.459 13.212
ptd1 5.315 1.230 22.973
ht1 10.271 1.440 73.283
ui1 3.838 0.985 14.951
Wald Confidence Interval for Adjusted Odds Ratios Effect Unit Estimate 95% Confidence Limits lwt1 10.0000 0.860 0.733 1.009
7.5 An example of the use of the logistic regression model in a 1-M matched study 
For this section, we omit the calculation of odds ratio after proc mdc. The calculation is shown in the first section of this chapter and is the same calculation here.
Table 7.11 on page 246.
proc mdc data = bbdm13;
model fndx = chk /type = clogit nchoice=4;
id str;
run;
Conditional Logit Estimates
Model Fit Summary
Dependent Variable fndx
Number of Observations 50
Number of Cases 200
Log Likelihood -62.81737
Maximum Absolute Gradient 2.03546E-9
Number of Iterations 4
Optimization Method Newton-Raphson
AIC 127.63473
Schwarz Criterion 129.54676
Goodness-of-Fit Measures for Discrete Choice Models
Measure Value Formula
Likelihood Ratio (R) 12.995 2 * (LogL - LogL0)
Upper Bound of R (U) 138.63 - 2 * LogL0
Aldrich-Nelson 0.2063 R / (R+N)
Cragg-Uhler 1 0.2289 1 - exp(-R/N)
Cragg-Uhler 2 0.2441 (1-exp(-R/N)) / (1-exp(-U/N))
Estrella 0.2388 1 - (1-R/U)^(U/N)
Adjusted Estrella 0.2048 1 - ((LogL-K)/LogL0)^(-2/N*LogL0)
McFadden's LRI 0.0937 R / U
Veall-Zimmermann 0.2807 (R * (U+N)) / (U * (R+N))
N = # of observations, K = # of regressors
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
chk 1 -1.2454 0.3815 -3.26 0.0011 -2.04E-9
proc mdc data = bbdm13; model fndx = agmn /type = clogit nchoice=4; id str; run;
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
agmn 1 0.4718 0.1110 4.25 <.0001 1.21E-11
proc mdc data = bbdm13; model fndx = wt /type = clogit nchoice=4; id str; run;
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
wt 1 -0.0352 0.008599 -4.09 <.0001 -5.76E-9
data bbdm13a; bbdm13; mst2 = ( mst = 2 | mst = 3); mst4 = ( mst = 4); mst5 = ( mst = 5); run; proc mdc data = bbdm13a; model fndx = mst2 mst4 mst5 /type = clogit nchoice=4; id str; run;
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
mst2 1 -0.3584 0.5605 -0.64 0.5225 5.47E-11
mst4 1 -0.7510 0.7904 -0.95 0.3420 -364E-12
mst5 1 1.2484 0.6059 2.06 0.0393 9.22E-11
Table 7.12 on page 247.
proc mdc data = bbdm13; model fndx = chk agmn wt mst2 mst4 mst5 /type = clogit nchoice=4; id str; run;
The MDC Procedure
Conditional Logit Estimates
Model Fit Summary
Dependent Variable fndx
Number of Observations 50
Number of Cases 200
Log Likelihood -45.21482
Maximum Absolute Gradient 2.37731E-6
Number of Iterations 5
Optimization Method Newton-Raphson
AIC 102.42965
Schwarz Criterion 113.90179
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
chk 1 -1.1218 0.4474 -2.51 0.0122 -2.21E-8
agmn 1 0.3561 0.1292 2.76 0.0058 8.038E-8
wt 1 -0.0284 0.009978 -2.84 0.0045 -2.38E-6
mst2 1 -0.2030 0.6473 -0.31 0.7538 -3.36E-9
mst4 1 -0.4916 0.8173 -0.60 0.5475 -1.21E-9
mst5 1 1.4722 0.7582 1.94 0.0522 7.341E-9
Table 7.13 on page 247.
proc mdc data = bbdm13; model fndx = chk agmn wt mst5 /type = clogit nchoice=4; id str; run;
The MDC Procedure
Conditional Logit Estimates
Model Fit Summary
Dependent Variable fndx
Number of Observations 50
Number of Cases 200
Log Likelihood -45.43901
Maximum Absolute Gradient 2.22381E-6
Number of Iterations 5
Optimization Method Newton-Raphson
AIC 98.87802
Schwarz Criterion 106.52611
Parameter Estimates
Standard Approx
Parameter DF Estimate Error t Value Pr > |t| Gradient
chk 1 -1.1613 0.4470 -2.60 0.0094 -2E-8
agmn 1 0.3592 0.1279 2.81 0.0050 7.529E-8
wt 1 -0.0282 0.009978 -2.83 0.0047 -2.22E-6
mst5 1 1.5934 0.7360 2.16 0.0304 6.713E-9
7.7 An example of assessment of fit in a 1-M matched study
Currently, SAS does not offer the diagnostics discussed in this section. Stata has an add-on program called clfit that will generate these diagnostic variables after clogit. Please see Chapter 7 in Stata for more detail.

