[R] Parametric Survival Models with Left Truncation, survreg

Brian D M Tom brian.tom at mrc-bsu.cam.ac.uk
Thu Jan 6 16:33:33 CET 2005


Hi,

I would like to fit parametric survival models to time-to-event data 
that are left truncated. I have checked the help page for survreg and 
looked in the R-help archive, and it appears that the R function survreg 
from the survival library (version 2.16) should allow me to take account 
of left truncation. However, when I try the command

summary(survreg(Surv(t,y,d,type="counting")~x2+x3,data=statadata0,dist="weibull",control=list(maxiter=100),na.action=na.exclude))

or

summary(survreg(Surv(t,y,d,type="counting")~x2+x3,data=statadata0,dist="lognormal",control=list(maxiter=100),na.action=na.exclude))

I get the following error message:

Error in survreg(Surv(t, y, d, type = "counting") ~ x2 + x3, data = 
statadata0,  :
         Invalid survival type


However, when I instead try fitting a Cox model (taking into account the 
left truncation) using coxph, i.e,

summary(coxph(Surv(t,y,d,type="counting")~x2+x3,data=statadata0,na.action=na.exclude))

it works:

 >
Call:
coxph(formula = Surv(t, y, d, type = "counting") ~ x2 + x3, data = 
statadata0,
     na.action = na.exclude)

   n= 235
      coef exp(coef) se(coef)    z       p
x2 1.2957      3.65   0.2771 4.68 2.9e-06
x3 0.0936      1.10   0.0128 7.30 2.9e-13

    exp(coef) exp(-coef) lower .95 upper .95
x2      3.65      0.274      2.12      6.29
x3      1.10      0.911      1.07      1.13

Rsquare= 0.322   (max possible= 0.961 )
Likelihood ratio test= 91.2  on 2 df,   p=0
Wald test            = 85.3  on 2 df,   p=0
Score (logrank) test = 106  on 2 df,   p=0

Am I doing something wrong or is there something wrong with survreg?

By the way, I have found a way to fit a Weibull model to left truncated 
data using weibreg from Göran Broström's library(eha):

 >library(eha) 
 >summary(weibreg(Surv(t,y,d,type="counting")~x2+x3,data=statadata0,na.action=na.exclude))

fit$fail =  0
Call:
weibreg(formula = Surv(t, y, d, type = "counting") ~ x2 + x3,
     data = statadata0, na.action = na.exclude)

Covariate           Mean       Coef  Rel.Risk      L-R p   Wald p
x2                  0.386     1.326     3.765               0.000
x3                 21.076     0.095     1.100               0.000

log(scale)          0.000     3.216    24.919               0.000
log(shape)          0.000     1.134     3.109               0.000

Events                    78
Total time at risk        2096.1
Max. log. likelihood      -262.02
LR test statistic         93.5
Degrees of freedom        4
Overall p-value           0

but I am then only limited to fitting Weibull models. Also, what I 
really am interested in, at the moment, is fitting Weibull "frailty" 
models, which I can't do with weibreg, but would be able to do (I 
think?) with survreg if it did allow left truncation. (I know that Cox 
frailty models can be fitted. For example,

 >summary(coxph(Surv(t,y,d,type="counting")~x2+x3+frailty(id),data=statadata0,na.action=na.exclude))
Call:
coxph(formula = Surv(t, y, d, type = "counting") ~ x2 + x3 +
     frailty(id), data = statadata0, na.action = na.exclude)

   n= 235
             coef  se(coef) se2    Chisq DF   p
x2          1.710 0.3395   0.2890 25.4   1.0 4.7e-07
x3          0.125 0.0191   0.0152 43.0   1.0 5.4e-11
frailty(id)                       88.5  65.1 2.9e-02

    exp(coef) exp(-coef) lower .95 upper .95
x2      5.53      0.181      2.84     10.76
x3      1.13      0.882      1.09      1.18

Iterations: 6 outer, 31 Newton-Raphson
      Variance of random effect= 1.23   I-likelihood = -328.2
Degrees of freedom for terms=  0.7  0.6 65.1
Rsquare= 0.625   (max possible= 0.961 )
Likelihood ratio test= 231  on 66.5 df,   p=0
Wald test            = 71.6  on 66.5 df,   p=0.311

).

If anyone knows of a way to fix survreg so that it allows left 
truncation, I would be most appreciated to hear from you.

All the best,

Brian




More information about the R-help mailing list