Table 5.1 on page 142 using the whas500 data. For each variable, we run separate tests. The numbers seen in the table have been italicized in the output shown here.
use https://stats.idre.ucla.edu/stat/examples/asa2/whas500, clear generate time = lenfol/365.25 stset time, fail(fstat) stci, p(50) by(gender) failure _d: fstat analysis time _t: time | no. of gender | subjects 50% Std. Err. [95% Conf. Interval] -------------+------------------------------------------------------------- 0 | 300 5.913758 . 4.44627 . 1 | 200 3.605749 .3012859 2.36824 4.32307 -------------+------------------------------------------------------------- total | 500 4.454483 .4368392 4.1232 6.44216
sts test gender failure _d: fstat analysis time _t: time Log-rank test for equality of survivor functions | Events Events gender | observed expected -------+------------------------- 0 | 111 130.73 1 | 104 84.27 -------+------------------------- Total | 215 215.00 chi2(1) = 7.79 Pr>chi2 = 0.0053 stci, p(50) by(cvd) failure _d: fstat analysis time _t: time | no. of cvd | subjects 50% Std. Err. [95% Conf. Interval] -------------+------------------------------------------------------------- 0 | 125 6.442163 .091912 4.31485 . 1 | 375 4.317591 .4139239 3.72074 6.43395 -------------+------------------------------------------------------------- total | 500 4.454483 .4368392 4.1232 6.44216
sts test cvd failure _d: fstat analysis time _t: time Log-rank test for equality of survivor functions | Events Events cvd | observed expected ------+------------------------- 0 | 45 55.84 1 | 170 159.16 ------+------------------------- Total | 215 215.00 chi2(1) = 2.86 Pr>chi2 = 0.0907 stci, p(50) by(afb) failure _d: fstat analysis time _t: time | no. of afb | subjects 50% Std. Err. [95% Conf. Interval] -------------+------------------------------------------------------------- 0 | 422 5.913758 .3102473 4.31485 . 1 | 78 2.368241 .28552 1.14716 3.77002 -------------+------------------------------------------------------------- total | 500 4.454483 .4368392 4.1232 6.44216
sts test afb failure _d: fstat analysis time _t: time Log-rank test for equality of survivor functions | Events Events afb | observed expected ------+------------------------- 0 | 168 184.77 1 | 47 30.23 ------+------------------------- Total | 215 215.00 chi2(1) = 10.90 Pr>chi2 = 0.0010 stci, p(50) by(sho) failure _d: fstat analysis time _t: time | no. of sho | subjects 50% Std. Err. [95% Conf. Interval] -------------+------------------------------------------------------------- 0 | 478 5.273101 .4557953 4.20534 . 1 | 22 .0465435 .0029195 .010951 1.22108 -------------+------------------------------------------------------------- total | 500 4.454483 .4368392 4.1232 6.44216
sts test sho failure _d: fstat analysis time _t: time Log-rank test for equality of survivor functions | Events Events sho | observed expected ------+------------------------- 0 | 198 209.33 1 | 17 5.67 ------+------------------------- Total | 215 215.00 chi2(1) = 23.84 Pr>chi2 = 0.0000 stci, p(50) by(chf) failure _d: fstat analysis time _t: time | no. of chf | subjects 50% Std. Err. [95% Conf. Interval] -------------+------------------------------------------------------------- 0 | 345 6.455852 .112291 5.91376 . 1 | 155 .9828885 .1189753 .709103 1.53867 -------------+------------------------------------------------------------- total | 500 4.454483 .4368392 4.1232 6.44216 sts test chf failure _d: fstat analysis time _t: time Log-rank test for equality of survivor functions | Events Events chf | observed expected ------+------------------------- 0 | 105 162.38 1 | 110 52.62 ------+------------------------- Total | 215 215.00 chi2(1) = 84.60 Pr>chi2 = 0.0000 stci, p(50) by(av3) failure _d: fstat analysis time _t: time | no. of av3 | subjects 50% Std. Err. [95% Conf. Interval] -------------+------------------------------------------------------------- 0 | 489 4.454483 .444643 4.1232 . 1 | 11 5.349761 .5643151 .005476 . -------------+------------------------------------------------------------- total | 500 4.454483 .4368392 4.1232 6.44216
sts test av3 failure _d: fstat analysis time _t: time Log-rank test for equality of survivor functions | Events Events av3 | observed expected ------+------------------------- 0 | 208 210.54 1 | 7 4.46 ------+------------------------- Total | 215 215.00 chi2(1) = 1.52 Pr>chi2 = 0.2171 stci, p(50) by(miord) failure _d: fstat analysis time _t: time | no. of miord | subjects 50% Std. Err. [95% Conf. Interval] -------------+------------------------------------------------------------- 0 | 329 5.913758 .1091955 5.2731 6.44216 1 | 171 3.373032 .2971829 1.96578 4.31759 -------------+------------------------------------------------------------- total | 500 4.454483 .4368392 4.1232 6.44216
sts test miord failure _d: fstat analysis time _t: time Log-rank test for equality of survivor functions | Events Events miord | observed expected ------+------------------------- 0 | 125 146.06 1 | 90 68.94 ------+------------------------- Total | 215 215.00 chi2(1) = 9.57 Pr>chi2 = 0.0020 stci , p(50) by(mitype) failure _d: fstat analysis time _t: time | no. of mitype | subjects 50% Std. Err. [95% Conf. Interval] -------------+------------------------------------------------------------- 0 | 347 3.501711 .3220688 2.60917 4.44627 1 | 153 6.433949 .1684645 6.43395 . -------------+------------------------------------------------------------- total | 500 4.454483 .4368392 4.1232 6.44216
sts test mitype failure _d: fstat analysis time _t: time Log-rank test for equality of survivor functions | Events Events mitype | observed expected -------+------------------------- 0 | 169 141.21 1 | 46 73.79 -------+------------------------- Total | 215 215.00 chi2(1) = 16.18 Pr>chi2 = 0.0001
Table 5.2 on page 143 using the whas500 data. We are running the Cox regressions using the quietly command, and then displaying the output from the lincom that corresponds to the table in the text.
quietly stcox age, nohr nolog lincom 5*age, hr ( 1) 5 age = 0 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | 1.392687 .0423237 10.90 0.000 1.312157 1.47816 ------------------------------------------------------------------------------ quietly stcox hr, nohr nolog lincom 10*hr, hr ( 1) 10 hr = 0 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | 1.162248 .0312287 5.60 0.000 1.102625 1.225095 ------------------------------------------------------------------------------ quietly stcox sysbp, nohr nolog lincom 10*sysbp, hr ( 1) 10 sysbp = 0 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .9559761 .0212814 -2.02 0.043 .9151622 .9986101 ------------------------------------------------------------------------------ quietly stcox diasbp, nohr nolog lincom 10*diasbp, hr ( 1) 10 diasbp = 0 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .8522054 .0279873 -4.87 0.000 .7990794 .9088635 ------------------------------------------------------------------------------ quietly stcox bmi, nohr nolog lincom 5*bmi, hr ( 1) 5 bmi = 0 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .6118107 .0451 -6.67 0.000 .5295051 .7069096 ------------------------------------------------------------------------------
Table 5.3 on page 143 using the whas500 data in a multivariate model.
stcox age hr sysbp diasbp bmi gender cvd afb chf miord mitype, nolog nohr failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(11) = 208.77 Log likelihood = -1123.1942 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- age | .0486034 .0068246 7.12 0.000 .0352274 .0619795 hr | .0104108 .0030766 3.38 0.001 .0043807 .0164408 sysbp | .0003598 .0029925 0.12 0.904 -.0055054 .006225 diasbp | -.0105894 .0049118 -2.16 0.031 -.0202164 -.0009624 bmi | -.0437268 .0164443 -2.66 0.008 -.075957 -.0114966 gender | -.2705711 .1457033 -1.86 0.063 -.5561443 .0150021 cvd | .0073416 .1781041 0.04 0.967 -.341736 .3564193 afb | .1280092 .1711795 0.75 0.455 -.2074965 .4635149 chf | .7735398 .149917 5.16 0.000 .4797079 1.067372 miord | .0438507 .1484028 0.30 0.768 -.2470134 .3347149 mitype | -.1641189 .1878532 -0.87 0.382 -.5323045 .2040666 ------------------------------------------------------------------------------
Table 5.4 on page 144 using the whas500 data in a multivariate model.
stcox age hr diasbp bmi gender afb chf miord mitype, nolog nohr failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(9) = 208.75 Log likelihood = -1123.2029 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- age | .0487438 .0067402 7.23 0.000 .0355332 .0619544 hr | .0103141 .0029871 3.45 0.001 .0044595 .0161687 diasbp | -.0101573 .0035359 -2.87 0.004 -.0170876 -.0032269 bmi | -.0435961 .0163254 -2.67 0.008 -.0755934 -.0115988 gender | -.2682873 .1446723 -1.85 0.064 -.5518399 .0152653 afb | .1254387 .1697283 0.74 0.460 -.2072226 .4581 chf | .7758481 .1486089 5.22 0.000 .48458 1.067116 miord | .044752 .1453871 0.31 0.758 -.2402015 .3297055 mitype | -.1691959 .1837834 -0.92 0.357 -.5294048 .191013 ------------------------------------------------------------------------------
Table 5.5 on page 144 using the whas500 data in a multivariate model.
stcox age hr diasbp bmi gender afb chf mitype, nolog nohr failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(8) = 208.66 Log likelihood = -1123.2502 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- age | .0486987 .0067245 7.24 0.000 .0355188 .0618785 hr | .0103887 .0029796 3.49 0.000 .0045487 .0162286 diasbp | -.0102109 .0035346 -2.89 0.004 -.0171386 -.0032832 bmi | -.0439615 .0162951 -2.70 0.007 -.0758994 -.0120236 gender | -.2735672 .1437035 -1.90 0.057 -.5552208 .0080865 afb | .1243358 .1697183 0.73 0.464 -.2083059 .4569776 chf | .7773988 .1486096 5.23 0.000 .4861293 1.068668 mitype | -.1820374 .1789234 -1.02 0.309 -.5327207 .168646 ------------------------------------------------------------------------------
Table 5.6 on page 145 using the whas500 data in a multivariate model.
stcox age hr diasbp bmi gender chf, nolog nohr failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(6) = 207.16 Log likelihood = -1123.9997 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- age | .0497904 .006596 7.55 0.000 .0368625 .0627184 hr | .0111788 .0029156 3.83 0.000 .0054644 .0168933 diasbp | -.0105912 .0035124 -3.02 0.003 -.0174753 -.0037071 bmi | -.0451558 .0162751 -2.77 0.006 -.0770543 -.0132573 gender | -.2699895 .1436178 -1.88 0.060 -.5514751 .0114962 chf | .777637 .1466956 5.30 0.000 .4901189 1.065155 ------------------------------------------------------------------------------
Table 5.7 on page 146 continuing to use the whas500 data.
summarize age, detail age ------------------------------------------------------------- Percentiles Smallest 1% 35.5 30 5% 46 32 10% 49 32 Obs 500 25% 59 33 Sum of Wgt. 500 50% 72 Mean 69.846 Largest Std. Dev. 14.49146 75% 82 97 90% 87 98 Variance 210.0023 95% 90 102 Skewness -.3794081 99% 95 104 Kurtosis 2.372922 /* Calculating Quartile Midpoints for Age */ display (r(min)+r(p25))/2 44.5 display (r(p25)+1+r(p50))/2 66 display (r(p50)+1+r(p75))/2 77.5 display (r(p75)+1+r(max))/2 93.5 gen age_q=age recode age_q 30/59=1 60/72=2 73/82=3 83/104=4 /* Calculating Coefficients for Age */ xi: stcox i.age_q hr diasbp bmi gender chf, nolog nohr i.age_q _Iage_q_1-4 (naturally coded; _Iage_q_1 omitted) failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(8) = 205.02 Log likelihood = -1125.0675 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- _Iage_q_2 | .689723 .2944466 2.34 0.019 .1126183 1.266828 _Iage_q_3 | 1.428489 .273315 5.23 0.000 .8928017 1.964177 _Iage_q_4 | 1.807118 .2781617 6.50 0.000 1.261931 2.352305 hr | .0099286 .0029392 3.38 0.001 .0041679 .0156892 diasbp | -.0112784 .0034908 -3.23 0.001 -.0181203 -.0044364 bmi | -.0493604 .0162702 -3.03 0.002 -.0812493 -.0174714 gender | -.2991236 .144762 -2.07 0.039 -.5828519 -.0153953 chf | .833958 .1460775 5.71 0.000 .5476515 1.120265 ------------------------------------------------------------------------------ summarize hr, detail hr ------------------------------------------------------------- Percentiles Smallest 1% 42 35 5% 54 36 10% 59 36 Obs 500 25% 69 38 Sum of Wgt. 500 50% 85 Mean 87.018 Largest Std. Dev. 23.58623 75% 100.5 154 90% 117 157 Variance 556.3103 95% 128.5 160 Skewness .5650649 99% 150 186 Kurtosis 3.455084 /* Calculating Quartile Midpoints for HR */ display (r(min)+r(p25))/2 52 display (r(p25)+1+r(p50))/2 77.5 display (r(p50)-0.5+r(p75))/2 92.5 display (r(p75)+0.5+r(max))/2 143.5 gen hr_q=hr recode hr_q 35/69=1 70/85=2 86/100.5=3 100.6/186=4 /* Calculating Coefficients for HR */ xi: stcox age i.hr_q diasbp bmi gender chf, nolog nohr i.hr_q _Ihr_q_1-4 (naturally coded; _Ihr_q_1 omitted) failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(8) = 209.47 Log likelihood = -1122.8425 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- age | .0504863 .0066777 7.56 0.000 .0373982 .0635744 _Ihr_q_2 | .334802 .2370135 1.41 0.158 -.129736 .79934 _Ihr_q_3 | .4828416 .2122658 2.27 0.023 .0668082 .898875 _Ihr_q_4 | .80903 .2078297 3.89 0.000 .4016912 1.216369 diasbp | -.0100241 .0035105 -2.86 0.004 -.0169046 -.0031436 bmi | -.0458672 .0162975 -2.81 0.005 -.0778097 -.0139247 gender | -.2691365 .1439823 -1.87 0.062 -.5513366 .0130637 chf | .7502223 .1487723 5.04 0.000 .4586339 1.041811 ------------------------------------------------------------------------------ summarize diasbp, detail diasbp ------------------------------------------------------------- Percentiles Smallest 1% 26 6 5% 48 11 10% 52 20 Obs 500 25% 63 21 Sum o f Wgt. 500 50% 79 Mean 78.266 Largest Std. Dev. 21.54529 75% 91.5 138 90% 103 140 Variance 464.1996 95% 110 150 Skewness .3069473 99% 134 198 Kurtosis 4.978975 /* Calculating Quartile Midpoints for diasbp */ display (r(min)+r(p25))/2 34.5 display (r(p25)+1+r(p50))/2 71.5 display (r(p50)+1+r(p75))/2 85.75 display (r(p75)+1+r(max))/2 145.25 gen diasbp_q=diasbp recode diasbp_q 6/63=1 64/79=2 80/91=3 92/198=4 /* Calculating Coefficients for diasbp */ xi: stcox age hr i.diasbp_q bmi gender chf, nolog nohr i.diasbp_q _Idiasbp_q_1-4 (naturally coded; _Idiasbp_q_1 omitted) failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(8) = 206.50 Log likelihood = -1124.3303 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- age | .0499355 .006599 7.57 0.000 .0370018 .0628692 hr | .011136 .0029239 3.81 0.000 .0054052 .0168668 _Idiasbp_q_2 | -.3136974 .1769299 -1.77 0.076 -.6604736 .0330787 _Idiasbp_q_3 | -.2980701 .2113169 -1.41 0.158 -.7122437 .1161035 _Idiasbp_q_4 | -.6104616 .2125098 -2.87 0.004 -1.026973 -.19395 bmi | -.0458759 .0164737 -2.78 0.005 -.0781637 -.0135882 gender | -.2525157 .1442736 -1.75 0.080 -.5352866 .0302553 chf | .7687909 .1505416 5.11 0.000 .4737349 1.063847 ------------------------------------------------------------------------------ summarize bmi, detail bmi ------------------------------------------------------------- Percentiles Smallest 1% 15.42587 13.04546 5% 18.60004 14.59031 10% 20.07724 14.83911 Obs 500 25% 23.2068 14.84283 Sum of Wgt. 500 50% 25.94592 Mean 26.61378 Largest Std. Dev. 5.405655 75% 29.39656 42.13576 90% 34.16071 42.38277 Variance 29.22111 95% 36.86193 42.76594 Skewness .528979 99% 40.89478 44.83886 Kurtosis 3.391798 /* Calculating Quartile Midpoints for bmi */ display (r(min)+r(p25))/2 18.12613 display (r(p25)+r(p50))/2 24.576362 display (r(p50)+r(p75))/2 27.671245 display (r(p75)+r(max))/2 37.117712 generate bmi_q=bmi recode bmi_q 13/23=1 23/26=2 26/29=3 29/45=4 /* Calculating Coefficients for bmi */ xi: stcox age hr diasbp i.bmi_q gender chf, nolog nohr i.bmi_q _Ibmi_q_1-4 (naturally coded; _Ibmi_q_1 omitted) failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(8) = 209.19 Log likelihood = -1122.9827 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- age | .0502594 .0066119 7.60 0.000 .0373004 .0632185 hr | .0114025 .0029193 3.91 0.000 .0056809 .0171241 diasbp | -.0111158 .0035745 -3.11 0.002 -.0181217 -.00411 _Ibmi_q_2 | -.45295 .1755822 -2.58 0.010 -.7970849 -.1088152 _Ibmi_q_3 | -.3151134 .1925495 -1.64 0.102 -.6925034 .0622767 _Ibmi_q_4 | -.5921103 .2224768 -2.66 0.008 -1.028157 -.1560638 gender | -.2520627 .1429792 -1.76 0.078 -.5322968 .0281714 chf | .7763868 .1460653 5.32 0.000 .4901041 1.062669 ------------------------------------------------------------------------------
Figure 5.1 on page 146 using the results from Table 5.7.
clear input agemp age_coeff hrmp hr_coeff diasmp dias_coeff bmimp bmi_coeff 44.55 0.000 52 0.000 34.5 0.000 18.1 0.000 66.5 0.6900 77.5 0.335 71.5 -0.314 24.6 -0.453 77.58 1.428 92.5 0.483 85.8 -0.298 27.7 -0.315 93.5 1.807 143.25 0.809 145.3 -0.610 37.1 -0.592 end list, clean agemp age_co~f hrmp hr_coeff diasmp dias_c~f bmimp bmi_co~f 1. 44.55 0 52 0 34.5 0 18.1 0 2. 66.5 .69 77.5 .335 71.5 -.314 24.6 -.453 3. 77.58 1.428 92.5 .483 85.8 -.298 27.7 -.315 4. 93.5 1.807 143.25 .809 145.3 -.61 37.1 -.592 label variable agemp "Age (Years)" label variable hrmp "Hear Rate (Beats/Min)" label variable diasmp "Diastolic Blood pressure (mmHg)" label variable bmimp "Body mass Index (kg/m^2)" scatter age_coeff agemp if agemp>=44.5 & agemp<=93.5, sort ms(o) c(l) mc(black) /// clpattern(solid) lc(black) ylabel(,nogrid) clwidth(thin) /// ytitle(Estimated Log Hazard) yscale(titlegap(3)) xlabel(44.5 66 77.5 93.5) /// xscale(titlegap(3) ) lc(black) graphregion(fcolor(white)) /// xtitle("Age (Years)" "(a) Estimated Coefficients for Age Quartiles") scatter hr_coeff hrmp if hrmp>=52 &hrmp<=143.5, sort ms(o) c(l) clpattern(solid) /// lc(black) mc(black) ylabel(,nogrid) clwidth(thin) /// ytitle(Estimated Log Hazard) yscale(titlegap(3)) xlabel(52 77.5 92.5 143.5) /// xscale(titlegap(3) ) lc(black) graphregion(fcolor(white)) /// xtitle("Heart Rate (Beats/Min)" "(b) Estimated Coefficients for Heart Rate Quartiles") scatter dias_coeff diasmp if diasmp>=34.5 &diasmp<=145.5, sort ms(o) c(l) clpattern(solid) /// lc(black) mc(black) ylabel(,nogrid) clwidth(thin) /// ytitle(Estimated Log Hazard) yscale(titlegap(3)) xlabel(34.5 71.5 86 145.5) /// xscale(titlegap(3) ) lc(black) graphregion(fcolor(white)) /// xtitle("Diastolic Blood Pressure (mmHg)" "(c) Estimated Coefficients for Dias. Bld Pr. Quartiles") scatter bmi_coeff bmimp if bmimp>=18.1 &bmimp<=37.1, sort ms(o) c(l) clpattern(solid) lc(black) /// mc(black) ylabel(,nogrid) clwidth(thin) /// ytitle(Estimated Log Hazard) yscale(titlegap(3)) xlabel(18.1 24.6 27.7 37.1) /// xscale(titlegap(3) ) lc(black) graphregion(fcolor(white)) /// xtitle("Body Mass Index (kg/m^2)" "(d) Estimated Coefficients for Body Mass Index Quartiles")
Table 5.8 on page 147 using the whas500 data.
use https://stats.idre.ucla.edu/stat/examples/asa2/whas500, clear generate time = lenfol/365.25 stset time, fail(fstat) fracpoly stcox bmi age hr diasbp gender chf, nolog nohr comp log -> gen double Iage__1 = age-69.846 if e(sample) -> gen double Ihr__1 = hr-87.018 if e(sample) -> gen double Idias__1 = diasbp-78.266 if e(sample) Model # Deviance Power 1 Power 2 1 2241.668 -2.0 . . . . [additional output omitted for space] . . . 43 2237.784 3.0 2.0 44 2237.922 3.0 3.0 -> gen double Ibmi__1 = X^2-7.082932813 if e(sample) -> gen double Ibmi__2 = X^3-18.8503615 if e(sample) (where: X = bmi/10) failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(7) = 217.37 Log likelihood = -1118.8921 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- Ibmi__1 | -.7247551 .172612 -4.20 0.000 -1.063068 -.3864418 Ibmi__2 | .1544204 .0392284 3.94 0.000 .0775343 .2313066 Iage__1 | .0497816 .0066127 7.53 0.000 .0368209 .0627423 Ihr__1 | .0118002 .002954 3.99 0.000 .0060105 .0175899 Idias__1 | -.0106741 .0035015 -3.05 0.002 -.0175368 -.0038113 gender | -.3264025 .1442151 -2.26 0.024 -.609059 -.043746 chf | .82341 .1471777 5.59 0.000 .534947 1.111873 ------------------------------------------------------------------------------ Deviance: 2237.78. Best powers of bmi among 44 models fit: 2 3. Fractional polynomial model comparisons: --------------------------------------------------------------- bmi df Deviance Dev. dif. P (*) Powers --------------------------------------------------------------- Not in model 0 2255.945 18.160 0.001 Linear 1 2247.999 10.215 0.017 1 m = 1 2 2241.668 3.884 0.143 -2 m = 2 4 2237.784 -- -- 2 3 --------------------------------------------------------------- (*) P-value from deviance difference comparing reported model with m = 2 model /* Comparing linear model to model without bmi */ display 2255.945 - 2247.999 7.946 display chi2tail(1,7.946) .00481938 /* Comparing m = 1 model to linear model */ display 2247.999 - 2241.668 6.331 display chi2tail(1,6.331) .01186454 /* Comparing m = 2 model to m = 1 model */ display 2241.668 - 2237.784 3.884 display chi2tail(2,3.884) .14341683
Figure 5.2 on page 149 using the whas500 data.
quietly stcox age hr diasbp gender chf, nolog nohr mgale(M_bmi) lowess M_bmi bmi, ms(o) ytitle(Martingale Residuals from Model Without BMI) /// ylabel(,nogrid angle(horizontal)) lineop(lc(black)) mc(black) /// title("") yscale(titlegap(3)) xscale(titlegap(3)) /// graphregion(fcolor(white)) quietly stcox age hr diasbp bmi gender chf, nolog nohr mgale(M_t) generate Hhat=fstat-M_t lowess fstat bmi, gen(csm) nograph lowess Hhat bmi, gen(Hsm) nograph generate gtfsmooth = ln(csm/Hsm)+_b[bmi]*bmi twoway line gtfsmooth bmi, sort ytitle("ln(csmoothed/Hsmoothed)+beta*x")
Table 5.9 on page 150 using the whas500 data.
gen bmifp1=(bmi/10)^2 gen bmifp2=(bmi/10)^3 stcox bmifp1 bmifp2 age hr diasbp gender chf, nolog nohr failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(7) = 217.37 Log likelihood = -1118.8921 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- bmifp1 | -.7247552 .172612 -4.20 0.000 -1.063068 -.3864419 bmifp2 | .1544204 .0392284 3.94 0.000 .0775343 .2313066 age | .0497816 .0066127 7.53 0.000 .0368209 .0627423 hr | .0118002 .002954 3.99 0.000 .0060105 .0175899 diasbp | -.0106741 .0035015 -3.05 0.002 -.0175368 -.0038113 gender | -.3264025 .1442151 -2.26 0.024 -.609059 -.043746 chf | .82341 .1471777 5.59 0.000 .534947 1.111873 ------------------------------------------------------------------------------ est store maineffects
Figure 5.3 on page 150 using the results from the model above on the whas500 data.
gen fp_funct=_b[bmifp1]*bmifp1+_b[bmifp2]*bmifp2 gen diff=gtfsmooth-fp_funct quietly summarize diff replace fp_funct=fp_funct+r(mean) line gtfsmooth fp_funct bmi, sort clpattern(solid shortdash) /// legend(row(2) col(1) order(1 "GTF Smooth" 2 "Two Term (2, 3) Model") ring(0) /// size(medsmall) pos(11) region(lc(white))) ytitle(Estimated Log Hazard) /// ylabel(,nogrid angle(horizontal)) yscale(titlegap(3)) /// xscale(titlegap(3)) lc(black black) graphregion(fcolor(white))
Table 5.10 on page 151 using the whas500 data. Since the BMI test requires removing two variables, we will do these first and then examine the rest of the variables using a foreach loop.
gen bmiage1 = age * bmifp1 gen bmiage2 = age * bmifp2 quietly stcox bmifp1 bmifp2 age hr diasbp gender chf bmiage1 bmiage2, nolog nohr est store A quietly stcox bmifp1 bmifp2 age hr diasbp gender chf, nolog nohr lrtest A Likelihood-ratio test LR chi2(2) = 3.32 (Assumption: . nested in A) Prob > chi2 = 0.1899 foreach varname of varlist hr diasbp gender chf { capture drop i1 gen i1=age*(`varname') quietly stcox bmifp1 bmifp2 age hr diasbp gender chf i1, nolog nohr est store A quietly stcox bmifp1 bmifp2 age hr diasbp gender chf, nolog nohr lrtest A } Likelihood-ratio test LR chi2(1) = 2.27 (Assumption: . nested in A) Prob > chi2 = 0.1316 Likelihood-ratio test LR chi2(1) = 2.70 (Assumption: . nested in A) Prob > chi2 = 0.1001 Likelihood-ratio test LR chi2(1) = 5.23 (Assumption: . nested in A) Prob > chi2 = 0.0223 Likelihood-ratio test LR chi2(1) = 4.99 (Assumption: . nested in A) Prob > chi2 = 0.0254 gen bmigender1 = gender * bmifp1 gen bmigender2 = gender * bmifp2 quietly stcox bmifp1 bmifp2 age hr diasbp gender chf bmigender1 bmigender2, nolog nohr est store A quietly stcox bmifp1 bmifp2 age hr diasbp gender chf, nolog nohr lrtest A Likelihood-ratio test LR chi2(2) = 3.83 (Assumption: . nested in A) Prob > chi2 = 0.1474 foreach varname of varlist hr diasbp chf { capture drop i1 gen i1=gender*(`varname') quietly stcox bmifp1 bmifp2 age hr diasbp gender chf i1, nolog nohr est store A quietly stcox bmifp1 bmifp2 age hr diasbp gender chf, nolog nohr lrtest A } Likelihood-ratio test LR chi2(1) = 2.13 (Assumption: . nested in A) Prob > chi2 = 0.1446 Likelihood-ratio test LR chi2(1) = 3.07 (Assumption: . nested in A) Prob > chi2 = 0.0796 Likelihood-ratio test LR chi2(1) = 0.50 (Assumption: . nested in A) Prob > chi2 = 0.4817
Table 5.11 on page 152 using the whas500 data.
generate axg = age*gender stcox bmifp1 bmifp2 age hr diasbp gender chf axg, nolog nohr failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(8) = 222.60 Log likelihood = -1116.2793 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- bmifp1 | -.6730201 .1735831 -3.88 0.000 -1.013237 -.3328035 bmifp2 | .1421257 .0394413 3.60 0.000 .0648222 .2194292 age | .0605347 .0083175 7.28 0.000 .0442327 .0768367 hr | .0116719 .0029427 3.97 0.000 .0059044 .0174394 diasbp | -.0107119 .0034741 -3.08 0.002 -.017521 -.0039027 gender | 1.855257 .9578425 1.94 0.053 -.0220801 3.732594 chf | .823524 .1465418 5.62 0.000 .5363074 1.110741 axg | -.0276658 .0120503 -2.30 0.022 -.051284 -.0040476 ------------------------------------------------------------------------------
Table 5.12 on page 152 using the whas500 data. Our coefficient for gender does not match the text exactly.
generate axd = age*diasbp generate axc = age*chf generate gxd = gender*diasbp stcox bmifp1 bmifp2 age hr diasbp gender chf axg axc axd gxd, nolog nohr failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(11) = 229.97 Log likelihood = -1112.5953 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- bmifp1 | -.6410106 .1753848 -3.65 0.000 -.9847585 -.2972627 bmifp2 | .137229 .0400039 3.43 0.001 .0588228 .2156352 age | .0338233 .0203215 1.66 0.096 -.0060061 .0736527 hr | .011193 .0029711 3.77 0.000 .0053697 .0170164 diasbp | -.0526922 .0213007 -2.47 0.013 -.0944408 -.0109435 gender | .7476962 1.220066 0.61 0.540 -1.643588 3.138981 chf | 2.456034 1.00301 2.45 0.014 .4901696 4.421898 axg | -.0220185 .0131616 -1.67 0.094 -.0478148 .0037779 axc | -.020293 .0127172 -1.60 0.111 -.0452182 .0046323 axd | .0004845 .0002649 1.83 0.067 -.0000346 .0010037 gxd | .0089871 .0069291 1.30 0.195 -.0045937 .022568 ------------------------------------------------------------------------------
Table 5.13 on page 153 using the whas500 data.
stcox bmifp1 bmifp2 age hr diasbp gender chf axg, nolog nohr failure _d: fstat analysis time _t: time Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(8) = 222.60 Log likelihood = -1116.2793 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- bmifp1 | -.6730201 .1735831 -3.88 0.000 -1.013237 -.3328035 bmifp2 | .1421257 .0394413 3.60 0.000 .0648222 .2194292 age | .0605347 .0083175 7.28 0.000 .0442327 .0768367 hr | .0116719 .0029427 3.97 0.000 .0059044 .0174394 diasbp | -.0107119 .0034741 -3.08 0.002 -.017521 -.0039027 gender | 1.855257 .9578425 1.94 0.053 -.0220801 3.732594 chf | .823524 .1465418 5.62 0.000 .5363074 1.110741 axg | -.0276658 .0120503 -2.30 0.022 -.051284 -.0040476 ------------------------------------------------------------------------------
Table 5.14 on page 158 using the whas500 data.
Stata computes the Wald test but not the score test and the output is not formatted as in the book. However, we can compare the order in which variables were added to that shown in the book. Stata provides the p-values at each step and the final model.
stepwise stcox age chf hr diasbp bmi gender mitype miord sysbp cvd afb, /// pe(.25) pr(.8) forward begin with empty model p = 0.0000 < 0.2500 adding age p = 0.0000 < 0.2500 adding chf p = 0.0025 < 0.2500 adding hr p = 0.0022 < 0.2500 adding diasbp p = 0.0074 < 0.2500 adding bmi p = 0.0601 < 0.2500 adding gender Cox regression -- Breslow method for ties No. of subjects = 500 Number of obs = 500 No. of failures = 215 Time at risk = 1207.989046 LR chi2(6) = 207.16 Log likelihood = -1123.9997 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- age | 1.051051 .0069327 7.55 0.000 1.03755 1.064727 chf | 2.176323 .319257 5.30 0.000 1.63251 2.901289 hr | 1.011242 .0029484 3.83 0.000 1.005479 1.017037 diasbp | .9894647 .0034754 -3.02 0.003 .9826765 .9962998 bmi | .9558485 .0155565 -2.77 0.006 .9258395 .9868302 gender | .7633875 .109636 -1.88 0.060 .5760994 1.011563 ------------------------------------------------------------------------------
Table 5.15 on page 161 using the whas500 data.
Stata does not have built-in score test or Mallow’s C.
It is possible to compute these values manually using the scoretest_cox command.
We will show the process for the first line in Table 5.15.
To get scoretest_cox type command: search scoretest_cox
/* 11-covariate model */ quietly stcox age gender hr diasbp bmi chf sysbp cvd afb miord mitype scoretest_cox age gender hr diasbp bmi chf sysbp cvd afb miord mitype ( 1) age = 0 ( 2) gender = 0 ( 3) hr = 0 ( 4) diasbp = 0 ( 5) bmi = 0 ( 6) chf = 0 ( 7) sysbp = 0 ( 8) cvd = 0 ( 9) afb = 0 (10) miord = 0 (11) mitype = 0 chi2( 11) = 208.62 Prob > chi2 = 0.0000 scalar score0 = r(chi2) /* Model 1 */ quietly stcox age gender hr diasbp bmi chf scoretest_cox age gender hr diasbp bmi chf ( 1) age = 0 ( 2) gender = 0 ( 3) hr = 0 ( 4) diasbp = 0 ( 5) bmi = 0 ( 6) chf = 0 chi2( 6) = 206.49 Prob > chi2 = 0.0000 scalar score1 = r(chi2) display score0 - score1 2.1326329 display (score0 - score1) + (11-2*5) 3.1326329 /* Model 2 */ quietly stcox age gender hr diasbp bmi chf mitype scoretest_cox age gender hr diasbp bmi chf mitype ( 1) age = 0 ( 2) gender = 0 ( 3) hr = 0 ( 4) diasbp = 0 ( 5) bmi = 0 ( 6) chf = 0 ( 7) mitype = 0 chi2( 7) = 208.04 Prob > chi2 = 0.0000 scalar score2 = r(chi2) display score0 - score2 .58451409 display (score0 - score2) + (11-2*4) 3.5845141 /* Model 3 */ quietly stcox age hr diasbp bmi chf scoretest_cox age hr diasbp bmi chf ( 1) age = 0 ( 2) hr = 0 ( 3) diasbp = 0 ( 4) bmi = 0 ( 5) chf = 0 chi2( 5) = 202.67 Prob > chi2 = 0.0000 scalar score3 = r(chi2) display score0 - score3 5.9477082 display (score0 - score3) + (11-2*6) 4.9477082 /* Model 4 */ quietly stcox age gender hr diasbp bmi chf sysbp scoretest_cox age gender hr diasbp bmi chf sysbp ( 1) age = 0 ( 2) gender = 0 ( 3) hr = 0 ( 4) diasbp = 0 ( 5) bmi = 0 ( 6) chf = 0 ( 7) sysbp = 0 chi2( 7) = 206.86 Prob > chi2 = 0.0000 scalar score4 = r(chi2) display score0 - score4 1.7659588 display (score0 - score4) + (11-2*4) 4.7659588 /* Model 5 */ quietly stcox age gender hr diasbp bmi chf miord scoretest_cox age gender hr diasbp bmi chf miord ( 1) age = 0 ( 2) gender = 0 ( 3) hr = 0 ( 4) diasbp = 0 ( 5) bmi = 0 ( 6) chf = 0 ( 7) miord = 0 chi2( 7) = 206.64 Prob > chi2 = 0.0000 scalar score5 = r(chi2) display score0 - score5 1.9869457 display (score0 - score5) + (11-2*4) 4.9869457
Table 5.16 on page 165 using the whas500 data. To install the mfp command, type search mfp. We have displayed only the output that corresponds to the table in the text.
mfp stcox age hr sysbp diasbp bmi gender cvd afb chf miord mitype, /// adjust(no) df(4, gender cvd afb chf miord mitype:1) /// alpha(0.15) select(0.15) Deviance for model with all terms untransformed = 2246.388, 500 observations . . . [additional output omitted for space] . . . Variable Model (vs.) Deviance Dev diff. P Powers (vs.) ---------------------------------------------------------------------- age null FP2 2301.581 67.477 0.000* . 3 3 lin. 2237.784 3.680 0.298 1 Final 2237.784 1 chf null lin. 2268.808 31.023 0.000* . 1 Final 2237.784 1 hr null FP2 2253.103 18.116 0.001* . -2 -2 lin. 2237.784 2.797 0.424 1 Final 2237.784 1 bmi null FP2 2255.945 18.160 0.001* . 2 3 lin. 2247.999 10.215 0.017+ 1 FP1 2241.668 3.884 0.143+ -2 Final 2237.784 2 3 diasbp null FP2 2247.368 12.275 0.015* . 3 3 lin. 2237.784 2.691 0.442 1 Final 2237.784 1 gender null lin. 2242.906 5.122 0.024* . 1 Final 2237.784 1 mitype null lin. 2237.784 0.852 0.356 . 1 Final 2237.784 . afb null lin. 2237.784 0.234 0.629 . 1 Final 2237.784 . miord null lin. 2237.784 0.153 0.695 . 1 Final 2237.784 . sysbp null FP2 2237.784 3.095 0.542 . -.5 -.5 Final 2237.784 . cvd null lin. 2237.784 0.052 0.820 . 1 Final 2237.784 . Fractional polynomial fitting algorithm converged after 3 cycles. . . . [additional output omitted for space] . . .
Tables 5.17 & 5.18 use hypothetical data