# [R] interpretation of coefficients in survreg AND obtaining the hazard function for an individual given a set of predictors

Thomas Lumley tlumley at uw.edu
Sun Nov 14 23:54:23 CET 2010

On Sun, Nov 14, 2010 at 6:51 AM, Biau David <djmbiau at yahoo.fr> wrote:
> Dear R help list,
>
> I am modeling some survival data with coxph and survreg (dist='weibull') using
> package survival. I have 2 problems:
>
> 1) I do not understand how to interpret the regression coefficients in the
> survreg output and it is not clear, for me, from ?survreg.objects how to.
>
> Here is an example of the codes that points out my problem:
> - data is stc1
> - the factor is dichotomous with 'low' and 'high' categories
>
> slr <- Surv(stc1$ti_lr, stc1$ev_lr==1)
>
> mca <- coxph(slr~as.factor(grade2=='high'), data=stc1)
> mcb <- coxph(slr~as.factor(grade2), data=stc1)
> mwa <- survreg(slr~as.factor(grade2=='high'), data=stc1, dist='weibull',
> scale=0)
> mwb <- survreg(slr~as.factor(grade2), data=stc1, dist='weibull', scale=0)
>
>> summary(mca)$coef > coef > exp(coef) se(coef) z Pr(>|z|) > as.factor(grade2 == "high")TRUE 0.2416562 1.273356 0.2456232 > 0.9838494 0.3251896 > >> summary(mcb)$coef
>                                       coef             exp(coef)
> se(coef)             z                     Pr(>|z|)
> as.factor(grade2)low -0.2416562 0.7853261     0.2456232     -0.9838494
> 0.3251896
>
>> summary(mwa)$coef > (Intercept) as.factor(grade2 == "high")TRUE > 7.9068380 -0.4035245 > >> summary(mwb)$coef
> (Intercept)     as.factor(grade2)low
> 7.5033135       0.4035245
>
>
> No problem with the interpretation of the coefs in the cox model. However, i do
> not understand why
> a) the coefficients in the survreg model are the opposite (negative when the
> other is positive) of what I have in the cox model? are these not the log(HR)
> given the categories of these variable?

No. survreg() fits accelerated failure models, not proportional
hazards models.   The coefficients are logarithms of ratios of
survival times, so a positive coefficient means longer survival.

> b) how come the intercept coefficient changes (the scale parameter does not
> change)?

Because you have reversed the order of the factor levels.  The
coefficient of that variable changes sign and the intercept changes to
compensate.

> 2) My second question relates to the first.
> a) given a model from survreg, say mwa above, how should i do to extract the
> base hazard and the hazard of each patient given a set of predictors? With the
> hazard function for the ith individual in the study given by  h_i(t) =
> exp(\beta'x_i)*\lambda*\gamma*t^{\gamma-1}, it doesn't look like to me that
> predict(mwa, type='linear') is \beta'x_i.

No, it's beta'x_i for the accelerated failure parametrization of the
Weibull.  In terms of the CDF

F_i(t) = F_0( exp((t+beta'x_i)/scale) )

So you need to multiply by the scale parameter and change sign to get
the log hazard ratios.

> b) since I need the coefficient intercept from the model to obtain the scale
> parameter  to obtain the base hazard function as defined in Collett
> (h_0(t)=\lambda*\gamma*t^{\gamma-1}), I am concerned that this coefficient
> intercept changes depending on the reference level of the factor entered in the
> model. The change is very important when I have more than one predictor in the
> model.

As Terry Therneau pointed out recently in the context of the Cox
model, there is no such thing as "the" baseline hazard.  The baseline
hazard is the hazard when all your covariates are equal to zero, and
this depends on how you parametrize.  In mwa, zero is grade2="low", in
mwb, zero is grade2="high", so the hazard at zero has to be different
in the two cases.

-thomas

--
Thomas Lumley
Professor of Biostatistics
University of Auckland



More information about the R-help mailing list