3

I am a clinician who is trying to fit a model that predicts the absolute risk of individuals developing cardiovascular events at the end of follow up period. I came across accelerated failed time models that should enable me to achieve the above purpose. But I don't know how to interpret the output of the model in R. Can anyone help? How do I generate output that tells me about the absolute predicted risk of individuals??

      surfit <- survreg(Surv(time, delta) ~ as.factor(stage) + age, dist='Weibull')
      summary(surfit)                
                      Value Std.Error    z     p
        (Intercept) 3.5288  0.9041     3.903 9.50e-05 
  as.factor(stage)2 -0.1477 0.4076    -0.362 7.17e-01
  as.factor(stage)3 -0.5866 0.3199    -1.833 6.68e-02
  as.factor(stage)4 -1.5441 0.3633    -4.251 2.13e-05
                age -0.0175 0.0128    -1.367 1.72e-01
         Log(scale) -0.1223 0.1225    -0.999 3.18e-01
user32454
  • 131
  • 2
  • 6
  • Nowhere. The information you list is about the effect of the predictors (`stage`, `age` and `scale`) on survival. – Marc Claesen Nov 15 '13 at 17:19
  • 1
    As far as I know, accelerated failure time models take the log of failure time as the dependent variable. In your case `exp(3.5288)` is the mean time to failure and other coefficients act on this. Risks are associated to hazard models. What distribution did you use? – martin Nov 15 '13 at 17:57
  • Some discussion about those absolute risks in user32454's previous question http://stats.stackexchange.com/questions/74873/predicting-absolute-risk-using-cox-regression – Michael M Nov 15 '13 at 18:34
  • Indeed, in order to answer this question we need the code you used to make this model as well. – Fomite Nov 15 '13 at 18:46
  • @ martin I used Weibull distribution by default. Could you explain how different types of distribution in my population contribute to the analysis of the model? – user32454 Nov 16 '13 at 02:19
  • @EpiGrad the R code that I referred from my notes is `surfit – user32454 Nov 16 '13 at 02:28

2 Answers2

3

Because survival::survreg objects have a predict method you can use this:

 indiv.pred <- predict( surfit, type="response")

The 'type' argument is not actually needed, because that is what survreg has as its default value. Similarly you do not need to add a new data argument because the original dataset values will be used as default arguments to 'newdata'.

DWin
  • 7,005
  • 17
  • 32
1

I guess the question arises because of some confusion with the possibilities to parameterise a Weibull survival model. Weibull survival model can be parameterised both as a proportional hazard (PH) model and accelerated failure time (AFT) model. The survreg function in the survival package in R uses the AFT, which means that it is not the hazard rate that is being modelled but time to failure. As such, you do not get an estimate in terms of hazard.

However, in the case of Weibull survival model, both the PH and AFT result in the same regression model. This means, having the AFT model parameter coefficients one is able to get the coefficients of PH model. This is explained in P. Hougaard, Fundamentals of Survival Data, Biometrics, March 1999, p.18. If the AFT model is:

$logT_i = \eta' z_i + \epsilon_i$

the PH coefficient $\beta$ (as in $h(t)=exp(\beta'z)$) can be obtained using:

$\eta = - \beta/\gamma$

where $\gamma$ is the shape parameter which is the inverse of scale.

Perhaps an easier alternative is to use weibreg in eha package which is a PH model from the beginning.

The delta in your model formula is supposed to be the vector that indicates failure or censoring.

Hope this helps.

martin
  • 199
  • 3
  • thanks for your comments. I just wonder which parameters in the output in `weibreg` that I should refer for each individual's absolute risk in %? i.e. I could tell from the output that individual A's absolute risk of developing adverse cardiovascular event in the follow up period is 12% for example. – user32454 Nov 16 '13 at 15:28
  • will there be a hazard coefficient that reflects the absolute risk? – user32454 Nov 16 '13 at 15:36
  • @user32454 I would advise reading this answer for your education but not necessarily trying to work through the calculations. Terry Therneau (author of pkg:survival) has already done all the hard work and the code is well tested, – DWin Nov 30 '13 at 23:02