01/20151 EPI 5344: Survival Analysis in Epidemiology Estimating S(t) from Cox models March 24, 2015 Dr. N. Birkett, School of Epidemiology, Public Health & Preventive Medicine, University of Ottawa
01/20152 Objectives Theory of estimating S(t) SAS methods
01/20153 Cox methods do not require an equation for h(t) –does not give 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/20154 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/20155 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/20156
7 We don’t care about the origin of the next formulae. It assumes there are no ties. Where: ‘l’ is subject having event at t j ‘k’ is subject whose survival curve is needed
01/20158 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/20159 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/201510
01/201511
01/201512
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/ We need S(t) for one set of covariates –Can be ‘0’ for all variables –mean value –anything else. Can generate any survival curve once we have this. SAS Methods (1)
01/ SAS implements these methods in Phreg using the BASELINE statement What covariate values are used? By default, SAS produces S(t) using these covariate values: –The reference level of any variable mentioned in a class statement –The mean value of each other variable SAS Methods (2)
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/201517
01/201518
01/201519
Hmm? ‘fin’ is an ordinal variable (yes/no for financial aid) Why is it given the value 0.5 in generating S(t)? Failed to put it in a CLASS statement It had numerical codes assigned (0/1) SAS treated it as an interval variable 0.5 = prob(fin= 1) 01/201520
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/201521
01/201522
What if you want S(t) for some other set of covariates? –Interested in specific target group –Want to contrast extremes of the range of variables Need to tell SAS what values to use for covariates. Use COVARIATES statement in SAS 01/201523
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/201524
01/201525
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 ODS graphics has complex options to overlay plots 01/201526
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/201527
01/201528
01/201529