01/20141 EPI 5344: Survival Analysis in Epidemiology Estimating S(t) from Cox models April 1, 2014 Dr. N. Birkett, Department of Epidemiology & Community Medicine, University of Ottawa
01/20142 Objectives Theory of estimating S(t) SAS methods
01/20143 Cox methods do not require an equation for h(t) –do not produce direct estimates of h(t), H(t) or S(t). If we could estimate any of these, we could get the others: Introduction (1) Assuming h(t) is constant in interval
01/20144 Since hazards are proportional, all we need to know is h(t) or S(t) for the baseline group: h 0 (t) or S 0 (t) Introduction (2) So, estimate S 0 (t) and we can get S(t) for any ‘x’s’
01/20145 Must use methods outside Cox regression. Two common approaches are used: –Generalize the Kaplan-Meier method to estimate S 0 (t) –Generalize Nelson-Aalen method to estimate H 0 (t) Implemented by using the BASELINE statement. First, a quick review of the technical background Introduction (3)
A bit of technical stuff We assume a piecewise constant hazard model –It keeps coming up, doesn’t it 01/20146
7 We don’t care about the origin of the next formulae. Assume there are no ties Where: ‘l’ is subject having event at t j ‘k’ is subject whose survival curve is needed
01/20148 Non-RCT study of therapy Hypernephroma (type of kidney cancer) All patients treated with –chemotherapy and –Immunotherapy Some also had their affected kidney removed. Questions –Does having a nephrectomy affect survival? –Does age affect survival in patients having a nephrectomy? Example (1)
01/20149 Answer is YES A 2i = 1 if age is = 0 otherwise A 3i = 1 if age is 70+ = 0 otherwise N i = 1 if had nephrectomy = 0 if no nephrectomy A 3 & N are statistically significant. What do survival curves look like? Example (2)
01/201410
01/201411
01/201412
01/ Could try smoothing the h(t) curve Estimated baseline hazard curve
How did we produce these curves? Using the formulae given earlier. SAS uses the BASELINE statement 01/ Example (3)
01/ SAS implements these methods in Phreg using the BASELINE statement By default, this statement produces S(t) at a pre-defined set of covariate values: –The reference level of any variable mentioned in a class statement –The mean value of each other variable SAS Methods (1)
ODS GRAPHICS ON; ODS RTF; PROC PHREG DATA=allison.recid PLOTS=S; MODEL week*arrest(0)=fin age prio / TIES=EFRON; BASELINE OUT=a SURVIVAL=s LOWER=lcl UPPER=ucl; RUN; proc print data=a; run; ODS RTF close; ODS GRAPHICS OFF; 01/201416
01/201417
01/201418
ODS GRAPHICS ON; ODS RTF; PROC PHREG DATA=allison.recid PLOTS=S; Class fin; MODEL week*arrest(0)=fin age prio / TIES=EFRON; BASELINE OUT=a SURVIVAL=s LOWER=lcl UPPER=ucl; RUN; proc print data=a; run; ODS RTF close; ODS GRAPHICS OFF; 01/201419
01/201420
What if you want S(t) for some other set of covariates? –Interested in specific target group –Contrast extremes of the range of variables Use COVARIATES statement in SAS 01/201421
DATA covals; INPUT fin age prio; DATALINES; ; run; PROC PHREG DATA=allison.recid; MODEL week*arrest(0)=fin age prio / TIES=EFRON; BASELINE OUT=a COVARIATES=covals SURVIVAL=s LOWER=lcl UPPER=ucl; run; proc print data=a; run; 01/201422
01/201423
What if you want to display the results of multiple covariate sets on the same graph? –Method #1 Run several of previous models, for different covariates. Combine the output datasets into on dataset Plot using SAS Graph, etc. –Method #2 list more than one set of covariates in the covariate data set 01/201424
DATA covals; INPUT fin age prio; DATALINES; ; run; ODS graphics ON; PROC PHREG DATA=allison.recid PLOTS(OVERLAY)=S; MODEL week*arrest(0)=fin age prio / TIES=EFRON; BASELINE OUT=a COVARIATES=covals SURVIVAL=s LOWER=lcl UPPER=ucl; run; ODS graphics off; proc print data=a; run; 01/201425
01/201426
01/201427