------------------------------------------------------------------------------------------------- log: C:\MyDocs\MPH\Text\SecondEdition\WebDoFiles\7.8.4.Framingham.log log type: text opened on: 3 Jan 2008, 17:32:01 . * 7.8.4.Framingham.log . * . * Plot Kaplan-Meier cumulative CHD morbidity curves as a function of age. . * Patients from the Framingham Heart Study enter the analysis when they . * reach the age of their baseline exam. . * . set memory 2m Current memory allocation current memory usage settable value description (1M = 1024k) -------------------------------------------------------------------- set maxvar 5000 max. variables allowed 1.909M set memory 2M max. data space 2.000M set matsize 400 max. RHS vars in models 1.254M ----------- 5.163M . use C:\WDDtext\2.20.Framingham.dta, clear . histogram age, bin(38) percent ylabel(0(1)4) xlabel(30(5)65) /// > ytitle(Percent of Study Subjects) (bin=38, start=30, width=1) . more . generate time= followup/365.25 . generate male = sex == 1 . label define male 0 "Women" 1 "Men" . label values male male . label variable time "Follow-up in Years" . generate exitage = age+time . stset exitage, enter(time age) failure(chdfate) failure event: chdfate != 0 & chdfate < . obs. time interval: (0, exitage] enter on or after: time age exit on or before: failure ------------------------------------------------------------------------------ 4699 total obs. 0 exclusions ------------------------------------------------------------------------------ 4699 obs. remaining, representing 1473 failures in single record/single failure data 103710.1 total analysis time at risk, at risk from t = 0 earliest observed entry t = 30 last observed exit t = 94 . sts graph, by(male) failure /// > ytitle(Cumulative CHD Morbidity) xtitle(Age) /// > ylabel(0(.1).7) ymtick(0(.05).75) xlabel(30(10)90) /// > xmtick(30(2)90) /// > legend(off) title(" ",size(zero)) noorigin failure _d: chdfate analysis time _t: exitage enter on or after: time age . more . * . * Calculate the logrank test corresponding to these morbidity functions . * . sts test male failure _d: chdfate analysis time _t: exitage enter on or after: time age Log-rank test for equality of survivor functions | Events Events male | observed expected ------+------------------------- Women | 650 901.92 Men | 823 571.08 ------+------------------------- Total | 1473 1473.00 chi2(1) = 182.91 Pr>chi2 = 0.0000 . * . * Calculate the relative risk of CHD for men relative to women using . * age as the time variable. . * . stcox male failure _d: chdfate analysis time _t: exitage enter on or after: time age Iteration 0: log likelihood = -11307.359 Iteration 1: log likelihood = -11218.917 Iteration 2: log likelihood = -11218.785 Refining estimates: Iteration 0: log likelihood = -11218.785 Cox regression -- Breslow method for ties No. of subjects = 4699 Number of obs = 4699 No. of failures = 1473 Time at risk = 103710.0914 LR chi2(1) = 177.15 Log likelihood = -11218.785 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- male | 2.011662 .1060464 13.26 0.000 1.814192 2.230626 ------------------------------------------------------------------------------ . * . * Compare Kaplan-Meier curve with best-fitting survival curves under the . * proportional hazards model. . * . stcoxkm, by(male) xtitle(Age) obs1opts(symbol(none) color(blue)) /// > pred1opts(symbol(none) color(blue) lpattern(dash)) /// > obs2opts( symbol(none) color(red)) /// > pred2opts(symbol(none) color(red) lpattern(dash)) /// > legend(ring(0) position(7) col(1) order(1 "Women: Observed" /// > 3 "Women: Predicted" 2 "Men: Observed" 4 "Men: Predicted")) failure _d: chdfate analysis time _t: exitage enter on or after: time age . more . * . * Draw log-log plots to assess the proportional hazards assumption. . * . stphplot, by(male) nolntime plot1opts(symbol(none)) /// > plot2opts(symbol(none)) /// > xtitle(Age) legend(off) failure _d: chdfate analysis time _t: exitage enter on or after: time age . * . * Perform hazard regression with time dependent covariates for sex . * . tabulate chdfate male Coronary | Heart | male Disease | Women Men | Total -----------+----------------------+---------- Censored | 2,000 1,226 | 3,226 CHD | 650 823 | 1,473 -----------+----------------------+---------- Total | 2,650 2,049 | 4,699 . * . * Split each patient's record into one or more records so that each . * record describes one epoch with constant covariates for the epoch. . * . generate exit = exitage . stset exit, id(id) enter(time age) failure(chdfate) id: id failure event: chdfate != 0 & chdfate < . obs. time interval: (exit[_n-1], exit] enter on or after: time age exit on or before: failure ------------------------------------------------------------------------------ 4699 total obs. 0 exclusions ------------------------------------------------------------------------------ 4699 obs. remaining, representing 4699 subjects 1473 failures in single failure-per-subject data 103710.1 total analysis time at risk, at risk from t = 0 earliest observed entry t = 30 last observed exit t = 94 . list id male age exit chdfate if id == 924 +---------------------------------------+ | id male age exit chdfate | |---------------------------------------| 3182. | 924 Men 32 63.23888 CHD | +---------------------------------------+ . stsplit enter, at(50 60 70 80) (8717 observations (episodes) created) . list id male enter exit chdfate if id == 924 +-----------------------------------------+ | id male enter exit chdfate | |-----------------------------------------| 7940. | 924 Men 0 50 . | 7941. | 924 Men 50 60 . | 7942. | 924 Men 60 63.23888 CHD | +-----------------------------------------+ . replace enter=age if id != id[_n-1] (4451 real changes made) . generate male1 = male*(exit <= 50) . generate male2 = male*(enter >= 50 & exit <= 60) . generate male3 = male*(enter >= 60 & exit <= 70) . generate male4 = male*(enter >= 70 & exit <= 80) . generate male5 = male*(enter >= 80) . list id male? enter exit chdfate if id == 924 +--------------------------------------------------------------------------+ | id male1 male2 male3 male4 male5 enter exit chdfate | |--------------------------------------------------------------------------| 7940. | 924 1 0 0 0 0 32 50 . | 7941. | 924 0 1 0 0 0 50 60 . | 7942. | 924 0 0 1 0 0 60 63.23888 CHD | +--------------------------------------------------------------------------+ . generate testmale = male1 + male2 + male3 + male4 + male5 . tabulate chdfate testmale, missing Coronary | Heart | testmale Disease | 0 1 | Total -----------+----------------------+---------- Censored | 2,000 1,226 | 3,226 CHD | 650 823 | 1,473 . | 5,217 3,500 | 8,717 -----------+----------------------+---------- Total | 7,867 5,549 | 13,416 . more . stset exit, id(id) enter(time enter) failure(chdfate) id: id failure event: chdfate != 0 & chdfate < . obs. time interval: (exit[_n-1], exit] enter on or after: time enter exit on or before: failure ------------------------------------------------------------------------------ 13416 total obs. 0 exclusions ------------------------------------------------------------------------------ 13416 obs. remaining, representing 4699 subjects 1473 failures in single failure-per-subject data 103710.1 total analysis time at risk, at risk from t = 0 earliest observed entry t = 30 last observed exit t = 94 . stcox male?, nohr failure _d: chdfate analysis time _t: exit enter on or after: time enter id: id Iteration 0: log likelihood = -11307.359 Iteration 1: log likelihood = -11205.593 Iteration 2: log likelihood = -11205.396 Iteration 3: log likelihood = -11205.396 Refining estimates: Iteration 0: log likelihood = -11205.396 Cox regression -- Breslow method for ties No. of subjects = 4699 Number of obs = 13416 No. of failures = 1473 Time at risk = 103710.0914 LR chi2(5) = 203.92 Log likelihood = -11205.396 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- male1 | 1.44211 .2241275 6.43 0.000 1.002828 1.881392 male2 | .908341 .1066138 8.52 0.000 .6993818 1.1173 male3 | .5668091 .0831192 6.82 0.000 .4038985 .7297197 male4 | .6317713 .1131073 5.59 0.000 .410085 .8534575 male5 | .0470984 .2460392 0.19 0.848 -.4351295 .5293263 ------------------------------------------------------------------------------ . stcox male? failure _d: chdfate analysis time _t: exit enter on or after: time enter id: id Iteration 0: log likelihood = -11307.359 Iteration 1: log likelihood = -11205.593 Iteration 2: log likelihood = -11205.396 Iteration 3: log likelihood = -11205.396 Refining estimates: Iteration 0: log likelihood = -11205.396 Cox regression -- Breslow method for ties No. of subjects = 4699 Number of obs = 13416 No. of failures = 1473 Time at risk = 103710.0914 LR chi2(5) = 203.92 Log likelihood = -11205.396 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- male1 | 4.22961 .9479718 6.43 0.000 2.72598 6.562631 male2 | 2.480204 .264424 8.52 0.000 2.012508 3.056591 male3 | 1.762634 .1465087 6.82 0.000 1.497652 2.074499 male4 | 1.880939 .2127479 5.59 0.000 1.506946 2.34775 male5 | 1.048225 .2579044 0.19 0.848 .6471809 1.697788 ------------------------------------------------------------------------------ . test male1 = male2 = male3 = male4 = male5 ( 1) male1 - male2 = 0 ( 2) male1 - male3 = 0 ( 3) male1 - male4 = 0 ( 4) male1 - male5 = 0 chi2( 4) = 24.74 Prob > chi2 = 0.0001 . lincom male1 - male2 ( 1) male1 - male2 = 0 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .5337688 .2481927 2.15 0.032 .0473199 1.020218 ------------------------------------------------------------------------------ . lincom male2 - male3 ( 1) male2 - male3 = 0 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .3415319 .1351862 2.53 0.012 .0765719 .6064919 ------------------------------------------------------------------------------ . lincom male3 - male4 ( 1) male3 - male4 = 0 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | -.0649622 .140364 -0.46 0.643 -.3400706 .2101463 ------------------------------------------------------------------------------ . lincom male4 - male5 ( 1) male4 - male5 = 0 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .5846729 .2707924 2.16 0.031 .0539295 1.115416 ------------------------------------------------------------------------------ . generate male34 = male3 + male4 . summarize male34 Variable | Obs Mean Std. Dev. Min Max -------------+-------------------------------------------------------- male34 | 13416 .1699463 .3755996 0 1 . stcox male1 male2 male34 male5 failure _d: chdfate analysis time _t: exit enter on or after: time enter id: id Iteration 0: log likelihood = -11307.359 Iteration 1: log likelihood = -11205.682 Iteration 2: log likelihood = -11205.503 Iteration 3: log likelihood = -11205.503 Refining estimates: Iteration 0: log likelihood = -11205.503 Cox regression -- Breslow method for ties No. of subjects = 4699 Number of obs = 13416 No. of failures = 1473 Time at risk = 103710.0914 LR chi2(4) = 203.71 Log likelihood = -11205.503 Prob > chi2 = 0.0000 ------------------------------------------------------------------------------ _t | Haz. Ratio Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- male1 | 4.22961 .9479718 6.43 0.000 2.72598 6.562631 male2 | 2.480204 .264424 8.52 0.000 2.012508 3.056591 male34 | 1.803271 .1208478 8.80 0.000 1.581309 2.056387 male5 | 1.048225 .2579044 0.19 0.848 .6471809 1.697788 ------------------------------------------------------------------------------ . test male1 = male2 = male34 = male5 ( 1) male1 - male2 = 0 ( 2) male1 - male34 = 0 ( 3) male1 - male5 = 0 chi2( 3) = 24.52 Prob > chi2 = 0.0000 . lincom male1 - male2 ( 1) male1 - male2 = 0 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .5337688 .2481927 2.15 0.032 .0473199 1.020218 ------------------------------------------------------------------------------ . lincom male2 - male34 ( 1) male2 - male34 = 0 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .318739 .1259271 2.53 0.011 .0719264 .5655516 ------------------------------------------------------------------------------ . lincom male34 - male5 ( 1) male34 - male5 = 0 ------------------------------------------------------------------------------ _t | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- (1) | .5425036 .2550027 2.13 0.033 .0427074 1.0423 ------------------------------------------------------------------------------ . . log close log: C:\MyDocs\MPH\Text\SecondEdition\WebDoFiles\7.8.4.Framingham.log log type: text closed on: 3 Jan 2008, 17:32:34 -----------------------------------------------------------------------------------------------