[R] Direct adjusted survival?
Peter Jepsen
PJ at DCE.AU.DK
Thu Jan 31 19:29:01 CET 2008
Dear Terry Therneau:
Thank you for replying. Please forgive me for carrying on.
Here is the example I gave, now with some output shown:
require(survival)
data(pbc)
coxph(Surv(time,status)~edtrt,data=pbc)
--- OUTPUT
Call:
coxph(formula = Surv(time, status) ~ edtrt, data = pbc)
coef exp(coef) se(coef) z p
edtrt 2.22 9.22 0.241 9.22 0
Likelihood ratio test=61.1 on 1 df, p=5.44e-15 n= 418
--- END OUTPUT
m<-coxph(Surv(time,status)~edtrt+log(bili),data=pbc)
m # log(bili) is a strong confounder
--- OUTPUT
Call:
coxph(formula = Surv(time, status) ~ edtrt + log(bili), data = pbc)
coef exp(coef) se(coef) z p
edtrt 1.435 4.20 0.2495 5.75 8.9e-09
log(bili) 0.895 2.45 0.0807 11.10 0.0e+00
Likelihood ratio test=181 on 2 df, p=0 n= 418
--- END OUTPUT
plot(survfit(Surv(time,status)~edtrt,data=pbc))
lines(survexp(~edtrt+ratetable(edtrt=edtrt,bili=bili),data=pbc,ratetable
=m,cohort=TRUE),col="purple")
If I understand the PBC-dataset correctly, the 'edtrt'-variable is not
treatment, but edema score. Unlike in the survexp-example, I do not use
the 'trt' variable in my example at all. What I meant by "strong
confounding" was the change in the HR for edema, from 9.22 without
adjustment for log(bili) to 4.20 with adjustment. I have read your book
several times, but I left it at work, and Google Print doesn't show page
281, where I believe that "direct-adjusted survival" is mentioned. Also,
if I remember correctly, the entire chapter 10 concernes using rates
from one population to predict rates in another population. If a revised
version of your book is forthcoming, as I strongly hope, I would love to
see a discussion of how the Ederer method can be used to adjust for
confounding, as in the above example where I (am trying to) plot the
survival probabilities for the three edema groups, as they would have
been if they all had the same bilirubin distribution. I'm in over my
head here, so please forgive me if I'm overlooking something obvious.
Best regards,
Peter.
-----Oprindelig meddelelse-----
Fra: Terry Therneau [mailto:therneau at mayo.edu]
Sendt: 31. januar 2008 15:52
Til: Peter Jepsen
Cc: r-help at r-project.org
Emne: Re: Direct adjusted survival?
> The lines that I hoped to be the survival probabilities for each
edtrt-group
> adjusted for confounding by log(bili) are nearly identical to the
KM-lines,
> and they certainly don't appear adjusted for the very strong
confounding by
> log(bili). I'm not quite sure what they are, though.
Yes, survexp will fit direct adjusted curves (and also the Hakulinen
and
conditional methods). For your example, I would expect that the
ordinary
Kaplan-Meier curves for treatment 1 vs 2 should be almost identical to
the
adjusted curves for treatment 1 vs 2. The PBC data is from a randomized
trial,
the two treatment arms are (not surprisingly) very well balanced with
respect
to bilirubin values, and so adjusting for imbalance makes no real
change. This
is exactly what the survexp code that you gave does.
If you are expected the curves to change, then I guess I'm not sure
what you
mean by "strong confounding". Bilirubin is perhaps the most important
clinical
measure of severity for any of the cholestatic liver diseases, of which
PBC is
one; but being a strong predictor of mortality does not necessarily
imply
confounding.
Standard errors for the direct curve are daunting -- it is several
pages of
code in a Gail and Benichou (?) paper. I need to create an example for
doing
this with the bootstrap. One problem is the two sources of variation.
The
original Cox model's curves have variance of course, but do we consider
the
population of subjects being averaged over (for the DA curve) to be
fixed or
random?
For a long explanation of expected survival I would refer you to
chapter 10
of Therneau and Grambsch, "Modeling Survival Data". One of the more
confusing
aspects is that things get re-discovered and renamed, the "direct
adjusted
survival" curve for instance is Ederer's method (1961) brought forward
to a
Cox model. The ideas are not hard, but it does take a whole chapter.
Terry Therneau
More information about the R-help
mailing list