Table 15.1, page 548
Including the effects of time-varying predictors in a Cox regression model.
Model A: Predictors include birthyr and the time-invariant predictors earlymj and earlyod.
proc phreg data='c:aldafirstcocaine'; model cokeage*censor(1)= birthyr earlymj earlyod/ties = efron; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 5525.059 5277.228 AIC 5525.059 5283.228 SBC 5525.059 5295.064 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio BIRTHYR 1 0.15508 0.01993 60.5637 <.0001 1.168 EARLYMJ 1 1.21707 0.16403 55.0532 <.0001 3.377 EARLYOD 1 0.79121 0.19620 16.2626 <.0001 2.206
Model B: Predictors include birthyr and the time-varying predictors usedmj and usedod.
proc phreg data='c:aldafirstcocaine'; model cokeage*censor(1)= birthyr usedmj usedod/ties = efron; if mjyes = 1 and mjage < cokeage then usedmj = 1; else usedmj = 0; if odyes = 1 and odage < cokeage then usedod = 1; else usedod = 0; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 5525.059 4669.096 AIC 5525.059 4675.096 SBC 5525.059 4686.932 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio BIRTHYR 1 0.10741 0.02145 25.0797 <.0001 1.113 usedmj 1 2.55177 0.28095 82.4918 <.0001 12.830 usedod 1 1.85386 0.12921 205.8483 <.0001 6.384
Model C: Includes predictor birthyr and the time-varying predictors usedmj, soldmj, usedod and moreod.
proc phreg data='c:aldafirstcocaine'; model cokeage*censor(1)= birthyr usedmj soldmj usedod moreod/ties = efron; if mjyes = 1 and mjage < cokeage then usedmj = 1; else usedmj = 0; if sellmjyes = 1 and sellmjage < cokeage then soldmj = 1; else soldmj = 0; if odyes = 1 and odage < cokeage then usedod = 1; else usedod = 0; if sdyes = 1 and sdage < cokeage then moreod = 1; else moreod = 0; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 5525.059 4580.537 AIC 5525.059 4590.537 SBC 5525.059 4610.264 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio BIRTHYR 1 0.08493 0.02183 15.1321 0.0001 1.089 usedmj 1 2.45920 0.28357 75.2073 <.0001 11.695 soldmj 1 0.68989 0.12263 31.6518 <.0001 1.993 usedod 1 1.25110 0.15656 63.8587 <.0001 3.494 moreod 1 0.76037 0.13066 33.8656 <.0001 2.139
Model D: Includes predictors birthyr and the time-invariant predictors earlymj and earlyod as well as the time-varying predictors usedmj, soldmj, usedod and moreod.
proc phreg data='c:aldafirstcocaine'; model cokeage*censor(1)= birthyr earlymj usedmj soldmj earlyod usedod moreod/ties = efron; if mjyes = 1 and mjage < cokeage then usedmj = 1; else usedmj = 0; if sellmjyes = 1 and sellmjage < cokeage then soldmj = 1; else soldmj = 0; if odyes = 1 and odage < cokeage then usedod = 1; else usedod = 0; if sdyes = 1 and sdage < cokeage then moreod = 1; else moreod = 0; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 5525.059 4580.311 AIC 5525.059 4594.311 SBC 5525.059 4621.929 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio BIRTHYR 1 0.08350 0.02257 13.6855 0.0002 1.087 EARLYMJ 1 0.07527 0.17090 0.1940 0.6596 1.078 usedmj 1 2.45222 0.28425 74.4230 <.0001 11.614 soldmj 1 0.67887 0.12496 29.5160 <.0001 1.972 EARLYOD 1 -0.08028 0.20325 0.1560 0.6929 0.923 usedod 1 1.25429 0.15723 63.6377 <.0001 3.505 moreod 1 0.76378 0.13219 33.3838 <.0001 2.146
Table 15.2, page 555
Comparing alternative imputation strategies for time-varying predictors.
Model A: Predictors include needle and basemood.
proc phreg data='c:aldarelapse_days'; model days*censor(1)= nasal basemood/ties = efron; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 528.186 515.680 AIC 528.186 519.680 SBC 528.186 523.935 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio Label NASAL 1 1.02073 0.31407 10.5627 0.0012 2.775 NEEDLE BASEMOOD 1 -0.00375 0.01471 0.0649 0.7989 0.996
Model B: Predictors include needle and weekmood (the value in the immediate prior week).
proc phreg data='c:aldarelapse_days'; model days*censor(1)=nasal weekmood /ties=efron; array mood[12] weekmood1-weekmood12; do i=1 to days; if (int(days/7)+1)=i then weekmood=mood[i]; end; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 528.186 509.576 AIC 528.186 513.576 SBC 528.186 517.831 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio Label NASAL 1 1.07958 0.31574 11.6912 0.0006 2.943 NEEDLE weekmood 1 -0.03490 0.01387 6.3359 0.0118 0.966
Model C: Predictors include needle and daymood (a linearly interpolated estimates of the person's mood on the immediately prior day).
proc phreg data='c:aldarelapse_days'; model days*censor(1)=nasal intmood/ties=efron; array avemood[13] avermood00-avermood12; do i=1 to days; thisweek = 1+int((i-1)/7); thisday = i - ((thisweek-1)*7); intmood=((8-thisday)/7)*avemood[thisweek]+((thisday-1)/7)*avemood[thisweek+1]; end; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 528.186 502.664 AIC 528.186 506.664 SBC 528.186 510.918 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio Label NASAL 1 1.12075 0.31700 12.5000 0.0004 3.067 NEEDLE intmood 1 -0.05438 0.01489 13.3307 0.0003 0.947
Figure 15.2, page 559
The graphs represent the sample functions of the log cumulative hazard functions for each level of rural.
proc phreg data='c:aldafirstcocaine' noprint; model cokeage*censor(1) = ; strata rural; baseline out=rural loglogs=logh ; run; goptions reset=all; symbol1 c=blue i=j line=1 width=2; symbol2 c=red i=j line=21; axis1 label=(a=90 'LogH(tj)'); axis2 order=(15 to 45 by 5); proc gplot data=rural; format cokeage 2.0; plot logh*cokeage = rural / vaxis=axis1 haxis=axis2 noframe; run; quit;
Table 15.3, page 560
Fitting a stratified Cox regression model
The unstratified model which corresponds to the first column of the table.
proc phreg data='c:aldafirstcocaine'; model cokeage*censor(1)= birthyr usedmj soldmj usedod moreod/ties = efron; if mjyes = 1 and mjage < cokeage then usedmj = 1; else usedmj = 0; if sellmjyes = 1 and sellmjage < cokeage then soldmj = 1; else soldmj = 0; if odyes = 1 and odage < cokeage then usedod = 1; else usedod = 0; if sdyes = 1 and sdage < cokeage then moreod = 1; else moreod = 0; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 5525.059 4580.537 AIC 5525.059 4590.537 SBC 5525.059 4610.264 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio BIRTHYR 1 0.08493 0.02183 15.1321 0.0001 1.089 usedmj 1 2.45920 0.28357 75.2073 <.0001 11.695 soldmj 1 0.68989 0.12263 31.6518 <.0001 1.993 usedod 1 1.25110 0.15656 63.8587 <.0001 3.494 moreod 1 0.76037 0.13066 33.8656 <.0001 2.139
The stratified model corresponding to the second column in the table.
proc phreg data='c:aldafirstcocaine'; model cokeage*censor(1)= birthyr usedmj soldmj usedod moreod/ties = efron; strata rural; if mjyes = 1 and mjage < cokeage then usedmj = 1; else usedmj = 0; if sellmjyes = 1 and sellmjage < cokeage then soldmj = 1; else soldmj = 0; if odyes = 1 and odage < cokeage then usedod = 1; else usedod = 0; if sdyes = 1 and sdage < cokeage then moreod = 1; else moreod = 0; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 5200.202 4271.899 AIC 5200.202 4281.899 SBC 5200.202 4301.626 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio BIRTHYR 1 0.08537 0.02187 15.2318 <.0001 1.089 usedmj 1 2.45805 0.28371 75.0643 <.0001 11.682 soldmj 1 0.68486 0.12284 31.0826 <.0001 1.984 usedod 1 1.25185 0.15665 63.8600 <.0001 3.497 moreod 1 0.74679 0.13126 32.3691 <.0001 2.110
Fitting the model separately for each level of rural.
proc sort data='c:aldafirstcocaine' out=sorted; by rural; run; proc phreg data=sorted; model cokeage*censor(1)= birthyr usedmj soldmj usedod moreod/ties = efron; by rural; if mjyes = 1 and mjage < cokeage then usedmj = 1; else usedmj = 0; if sellmjyes = 1 and sellmjage < cokeage then soldmj = 1; else soldmj = 0; if odyes = 1 and odage < cokeage then usedod = 1; else usedod = 0; if sdyes = 1 and sdage < cokeage then moreod = 1; else moreod = 0; run; <output omitted> RURAL=0 Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 4586.246 3809.358 AIC 4586.246 3819.358 SBC 4586.246 3838.323 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio BIRTHYR 1 0.08127 0.02358 11.8814 0.0006 1.085 usedmj 1 2.43696 0.31545 59.6804 <.0001 11.438 soldmj 1 0.71514 0.13127 29.6793 <.0001 2.044 usedod 1 1.27272 0.17157 55.0304 <.0001 3.571 moreod 1 0.69249 0.14102 24.1143 <.0001 1.999 RURAL=1 Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 613.956 460.957 AIC 613.956 470.957 SBC 613.956 480.901 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio BIRTHYR 1 0.10977 0.05843 3.5296 0.0603 1.116 usedmj 1 2.51818 0.64874 15.0671 0.0001 12.406 soldmj 1 0.45410 0.35296 1.6552 0.1983 1.575 usedod 1 1.14528 0.38424 8.8840 0.0029 3.143 moreod 1 1.10510 0.35232 9.8383 0.0017 3.020
Table 15.4, page 566
Fitting a non-proportional hazards Cox regression model.
Model A: Predictors include the main effect of treat.
proc phreg data='c:aldalengthofstay'; model days*censor(1)=treat/ties=efron; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 1437.520 1436.628 AIC 1437.520 1438.628 SBC 1437.520 1441.775 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio TREAT 1 0.14570 0.15415 0.8934 0.3446 1.157
Model B: The effects of treat varies linearly over time.
proc phreg data='c:aldalengthofstay'; model days*censor(1)=treat treattime/ties=efron; treattime=treat*(days-1); run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 1437.520 1431.374 AIC 1437.520 1435.374 SBC 1437.520 1441.669 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio TREAT 1 0.70613 0.29240 5.8321 0.0157 2.026 treattime 1 -0.02082 0.00921 5.1143 0.0237 0.979
Model C: The effects of treat differ week by week.
proc phreg data='c:aldalengthofstay'; model days*censor(1)=treat1-treat6/ties=efron; array dummy[5] treat1-treat5; do i=1 to 5; if ceil(days/7) = i then dummy[i]=treat; else dummy[i]=0; end; if days >= 35 then treat6=treat; else treat6=0; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 1437.520 1417.730 AIC 1437.520 1429.730 SBC 1437.520 1448.615 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio treat1 1 1.57109 0.64060 6.0149 0.0142 4.812 treat2 1 0.56779 0.49285 1.3272 0.2493 1.764 treat3 1 0.84970 0.36207 5.5075 0.0189 2.339 treat4 1 -0.34986 0.36415 0.9231 0.3367 0.705 treat5 1 -0.76597 0.41608 3.3890 0.0656 0.465 treat6 1 -0.09929 0.31105 0.1019 0.7496 0.905
Model D: The effect of treat varies linearly with the logarithm (to base 2) of time.
proc phreg data='c:aldalengthofstay'; model days*censor(1)=treat treatlt/ties=efron; treatlt=treat*log2(days); run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 1437.520 1423.062 AIC 1437.520 1427.062 SBC 1437.520 1433.357 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio TREAT 1 2.53337 0.76031 11.1023 0.0009 12.596 treatlt 1 -0.53009 0.16188 10.7230 0.0011 0.589
Figure 15.3, page 567
Figure 15.3--top panel
Depicts the log cumulative hazard functions for each level of treat when there is an interaction with time.
proc phreg data='c:aldalengthofstay' noprint; model days*censor(1)= /ties=efron; strata treat; baseline out=treat loglogs=logh; run; goptions reset=all; symbol1 c=blue i=j line=1 width=2; symbol2 c=red i=j line=21; axis1 label=(a=90 'LogH(tj)'); proc gplot data=treat; plot logh*days=treat /vaxis=axis1 noframe ; run; quit;
Figure 15.3--bottom panel
The difference in sample log cumulative hazard functions for each level of treat.
data treat0 (where=(treat=0) rename=(logh=logh0)) treat1 (where=(treat=1) rename=(logh=logh1)); set treat; run; data graph; merge treat0 treat1; by days; difflogh=logh1-logh0; drop treat; run; goptions reset=all; symbol1 c=blue i=j; axis1 label=(a=90 'Difference') order=(-0.25 to 1.75 by 0.25); axis2 order=(0 to 77 by 7); proc gplot data=graph; plot difflogh*days /vaxis=axis1 haxis=axis2 vref=0; run; quit;
Figure 15.4, page 573
Figure 15.4--top panel
The martingale residual versus the predictor age from the null model with a lowess curve overlaid.
** Computing the martingale residuals for the Null Model **; proc phreg data='c:aldarearrest' noprint; model months*censor(1)= /ties=efron; id id; output out=nullres resmart=nullmart /method=pl; run; proc sort data=nullres; by id; run; data combo_null; merge 'c:aldarearrest' nullres; drop personal property; run; ods output OutputStatistics=nullsm; ods listing close; proc loess data=combo_null; model nullmart=cage; id id; run; ods listing; data nullsm; set nullsm; Nsmooth = pred; keep id Nsmooth; run; proc sort data=nullsm; by id; run; data graph_null; merge nullsm combo_null; by id; run; proc sort data=graph_null; by cage; run; goptions reset=all; axis1 order=(-3 to 1 by 1) label=(a=90 'Mi'); axis2 order=(-20 to 40 by 10) label=('Centered Age'); symbol1 color=red value=dot i=none; symbol2 color=blue value=plus i=none; symbol3 color=black value=none i=join; proc gplot data=graph_null; plot1 nullmart*cage=censor/haxis=axis2 vaxis=axis1 vref=0 noframe; plot2 Nsmooth *cage=3 / haxis=axis2 vaxis=axis1 noaxis; run; quit;
Figure 15.4--bottom panel
The martingale residual versus age for a model that includes age, personal and property (model D of Table 15.1)
proc phreg data='c:aldarearrest' noprint; model months*censor(1)=cage personal property/ties=efron; id id; output out=Dres resdev=Ddev resmart=Dmart/method=pl; run; proc sort data=Dres; by id; run; data comboD; merge 'c:aldarearrest' Dres; drop personal property; run; ods output OutputStatistics=Dsm; ods listing close; proc loess data=comboD; model Dmart=cage; id id; run; ods listing; data Dsm; set Dsm; Dsmooth = pred; keep id Dsmooth; run; proc sort data=Dsm; by id; run; data graphD; merge Dsm comboD; by id; run; proc sort data=graphD; by cage; run; goptions reset=all; axis1 order=(-3 to 1 by 1) label=(a=90 'Mi'); axis2 order=(-20 to 40 by 10) label=('Centered Age'); symbol1 color=red value=dot i=none; symbol2 color=blue value=plus i=none; symbol3 color=black value=none i=join; proc gplot data=graphD; plot1 Dmart*cage=censor/ haxis=axis2 vaxis=axis1 vref=0 noframe; plot2 Dsmooth*cage=3 / haxis=axis2 vaxis=axis1 noaxis; run; quit;
Figure 15.5, page 576
Stem-and-leaf plot, boxplot and scatter plot of the deviance residuals. In the scatter plot the residuals are plotted versus the risk score.
proc phreg data='c:aldarearrest' noprint; model months*censor(1)=cage personal property/ties=efron; id id; output out=Dres resdev=Ddev resmart=Dmart xbeta=risk/method=pl; run; proc univariate data=Dres plot; var Ddev; run; <output omitted> Stem Leaf # Boxplot 26 7 1 | 24 00 2 | 22 6 1 | 20 785 3 | 18 23356 5 | 16 04795 5 | 14 1228055578 10 | 12 0115 4 | 10 022335725789 12 | 8 1135690001233889999 19 +-----+ 6 2588919 7 | | 4 123678802337 12 | | 2 0318 4 | | 0 268978 6 | + | -0 97597551 8 *-----* -2 850099554110 12 | | -4 444443332877644210 18 | | -6 876321098874400 15 | | -8 99852176443 11 +-----+ -10 208776542110 12 | -12 87654741 8 | -14 54216 5 | -16 969221 6 | -18 6491 4 | -20 21 2 | -22 09 2 | ----+----+----+----+ Multiply Stem.Leaf by 10**-1 goptions reset=all; axis1 order=(-3 to 3 by 1) label=(a=90 'Di'); axis2 label=('Risk Score'); symbol1 color=red value=dot; symbol2 color=blue value=plus; proc gplot data=one; plot Ddev*risk=censor/ haxis=axis2 vaxis=axis1 vref=0 noframe; run; quit;
Figure 15.6, page 580
The Schoenfeld residuals from Model D versus ranked event time for the predictors personal, property and age. Each graph includes a lowess curve.
proc rank data='c:aldarearrest' out=one; var months; ranks ranktime; run; proc phreg data='c:aldarearrest' noprint; model months*censor(1)=cage property personal/ties=efron; id id; output out=fitres ressch=schage schprop schpers /method=pl; run; proc sort data=fitres; by id; run; data combo; merge one fitres; by id; if censor = 0; *only keeping observed observations*; run; *Lowess smoothing for AGE *; ods output OutputStatistics=agesm; ods listing close; proc loess data=combo; model schage=ranktime; id id; run; ods listing; data agesm; set agesm; lowage = pred; keep id lowage; run; proc sort data=agesm; by id; run; * Lowess smoothing for PROPERTY *; ods output OutputStatistics=propsm; ods listing close; proc loess data=combo; model schprop=ranktime; id id; run; ods listing; data propsm; set propsm; lowprop = pred; keep id lowprop; run; proc sort data=propsm; by id; run; * Lowess smoothing for PERSON *; ods output OutputStatistics=perssm; ods listing close; proc loess data=combo; model schpers=ranktime; id id; run; ods listing; data perssm; set perssm; lowpers = pred; keep id lowpers; run; proc sort data=perssm; by id; run; * Merging the Schoenfeld residuals and lowess smooths together *; data all; merge combo agesm propsm perssm; by id; run; proc corr data=all; with schpers schprop schage; var months ranktime; run; <output omitted> Pearson Correlation Coefficients, N = 106 Prob > |r| under H0: Rho=0 months ranktime schpers -0.07564 -0.08711 Schoenfeld Residual for personal 0.4409 0.3746 schprop -0.09639 -0.06769 Schoenfeld Residual for property 0.3256 0.4906 schage 0.25906 0.28199 Schoenfeld Residual for cage 0.0073 0.0034 proc sort data=all; by ranktime; run; goptions reset=all; symbol1 color=blue value=dot; symbol2 i=join; axis1 label=('Rank(months)') order=(0 to 175 by 25); axis2 label=(a=90 'S(ti)') order=(-0.5 to 1.0 by 0.5); axis3 label=(a=90 'S(ti)') order=(-1 to 0.20 by 0.2); axis4 label=(a=90 'S(ti)') order=(-10 to 20.0 by 10); proc gplot data=all; plot (schpers lowpers)*ranktime/ overlay haxis=axis1 vaxis=axis2 noframe; plot (schprop lowprop)*ranktime/ overlay haxis=axis1 vaxis=axis3 noframe; plot (schage lowage)*ranktime/ overlay haxis=axis1 vaxis=axis4 noframe; run; quit;
Figure 15.7, page 583
The score residuals versus the ranked event times for each predictor in the three predictor model which includes personal, property and age.
*using the same rank data from fig. 7.6; proc phreg data='c:aldarearrest' noprint; model months*censor(1)=cage personal property/ties=efron; id id; output out=scores ressco=scoage scoprop scopers/method=pl; run; proc sort data=scores; by id; run; data combo; merge one scores; by id; run; goptions reset=all; symbol1 color=red value=dot; symbol2 color=blue value=plus; axis1 label=('Rank(months)') order=(0 to 200 by 25); axis2 label=(a=90 'Score Residual for Personal') order=(-1 to 1.2 by 0.2); axis3 label=(a=90 'Score Residual for Property') order=(-2 to 2 by 1); axis4 label=(a=90 'Score Residual for centered Age') order=(-10 to 20.0 by 10); proc gplot data=combo; plot scopers*ranktime=censor/ vref=0 haxis=axis1 vaxis=axis2 noframe; plot scoprop*ranktime=censor/ vref=0 haxis=axis1 vaxis=axis3 noframe; plot scoage*ranktime=censor/ vref=0 haxis=axis1 vaxis=axis4 noframe; run; quit;
Table 15.6, page 587
Illustrates the structure of the Supreme Court data set by displaying the data for three individual judges.
data judges; set 'c:aldajudges'; yearleft = .; if leave=1 then yearleft = year + tenure; left = 0; if dead = 1 then left = 1; if retire = 1 then left = 2; run; proc format; value left 0='censored' 1='dead' 2='retired'; run; proc print data=judges noobs; format left left.; where id=2 or id=13 or id=107; var id year yearleft left tenure dead retire leave; run; id year yearleft left tenure dead retire leave 2 1789 1795 retired 6 0 1 1 13 1801 1835 dead 34 1 0 1 107 1991 . censored 8 0 0 0
Table 15.7, page 592
Competing-risk survival analysis.
Model A: Fitting the model for the event of death only.
proc phreg data=judges; model tenure*left(0 2) = age year / ties=efron; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 351.053 331.447 AIC 351.053 335.447 SBC 351.053 339.147 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio age 1 0.06711 0.02386 7.9096 0.0049 1.069 year 1 -0.01160 0.00289 16.0675 <.0001 0.988
Model B: Fitting the model for the event of retirement only.
proc phreg data=judges; model tenure*left(0 1) = age year / ties=efron; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 395.406 373.497 AIC 395.406 377.497 SBC 395.406 381.437 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio age 1 0.10611 0.02579 16.9329 <.0001 1.112 year 1 0.0007141 0.00264 0.0730 0.7870 1.001
Model C: Fitting the model for the combined events of death or retirement.
proc phreg data=judges; model tenure*left(0) = age year / ties=efron; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 739.620 711.765 AIC 739.620 715.765 SBC 739.620 720.975 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio age 1 0.08606 0.01766 23.7585 <.0001 1.090 year 1 -0.00522 0.00188 7.7118 0.0055 0.995
Table 15.8, page 601
Accounting for late entry into the risk set.
Model A: Appropriately including the late entrants.
proc phreg data='c:aldadoctors'; model exit*censor(1)= parttime age yrage / entry=entry ties=efron; yrage = exit*age; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 4264.335 4214.515 AIC 4264.335 4220.515 SBC 4264.335 4232.459 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio Label parttime 1 -1.34730 0.27638 23.7641 <.0001 0.260 age 1 0.04781 0.02421 3.8999 0.0483 1.049 Age at start yrage 1 -0.02867 0.00906 10.0130 0.0016 0.972
Model B: Fitting the model only to those physicians hired during the measurement window.
proc phreg data='c:aldadoctors'; where entry=0; model exit*censor(1)= parttime age yrage / ties=efron; yrage = exit*age; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 560.760 558.391 AIC 560.760 564.391 SBC 560.760 570.521 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio Label parttime 1 -0.17055 0.52080 0.1072 0.7433 0.843 age 1 0.03981 0.04553 0.7647 0.3819 1.041 Age at start yrage 1 -0.00388 0.04458 0.0076 0.9306 0.996
Model C: Ignoring the presence of late entrants--shown for pedagogical purposes only since it an INCORRECT MODEL.
proc phreg data='c:aldadoctors'; model exit*censor(1)= parttime age yrage / ties=efron; yrage = exit*age; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 4539.431 4482.988 AIC 4539.431 4488.988 SBC 4539.431 4500.932 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio Label parttime 1 -1.33938 0.27649 23.4671 <.0001 0.262 age 1 0.09768 0.01918 25.9326 <.0001 1.103 Age at start yrage 1 -0.03705 0.00779 22.6284 <.0001 0.964
Table 15.9, page 604
Empirically comparing alternative metrics for clocking time in Cox regression analysis.
Model A: Clocks time using session number.
proc phreg data='c:aldamonkeys'; model sessions*censor(1) = female bodywt initial_age / ties=efron; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 944.449 919.898 AIC 944.449 925.898 SBC 944.449 934.310 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio FEMALE 1 0.37197 0.19024 3.8229 0.0506 1.451 BODYWT 1 0.11632 0.02804 17.2124 <.0001 1.123 INITIAL_AGE 1 0.10636 0.03386 9.8698 0.0017 1.112
Model B: Clocks time using age but not accounting for late entry into the risk set.
proc phreg data='c:aldamonkeys'; model end_age*censor(1) = female bodywt initial_age / ties=efron; run; <output omitted> Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 944.449 915.073 AIC 944.449 921.073 SBC 944.449 929.485 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio FEMALE 1 0.29077 0.18876 2.3727 0.1235 1.337 BODYWT 1 0.10209 0.02770 13.5841 0.0002 1.107 INITIAL_AGE 1 -0.09391 0.03014 9.7064 0.0018 0.910
Model C: Clocks time using age and appropriately accounts for late entry.
proc phreg data='c:aldamonkeys'; model end_age*censor(1) = female bodywt initial_age / ties=efron entry=initial_age; run; Model Fit Statistics Without With Criterion Covariates Covariates -2 LOG L 914.654 896.822 AIC 914.654 902.822 SBC 914.654 911.234 Analysis of Maximum Likelihood Estimates Parameter Standard Hazard Variable DF Estimate Error Chi-Square Pr > ChiSq Ratio FEMALE 1 0.31176 0.18785 2.7543 0.0970 1.366 BODYWT 1 0.10255 0.02771 13.6994 0.0002 1.108 INITIAL_AGE 1 -0.01891 0.03493 0.2931 0.5883 0.981