[R] using survreg() in survival package with "long" data

Fox, John jfox at mcmaster.ca
Sat Aug 29 19:06:26 CEST 2015


Dear list members,

I'm unable to fit a parametric survival regression using survreg() in the survival package with data in "counting-process" ("long") form.

To illustrate using a scaled-down problem with 10 subjects (with data placed on the web):

--------------- snip ------------
> library(survival)
> RW <- read.table("http://socserv.mcmaster.ca/jfox/.Pickup/RW.txt")
> RL <- read.table("http://socserv.mcmaster.ca/jfox/.Pickup/RL.txt")

> RW # "wide" data
   week arrest age
1    20      1  27
2    17      1  18
3    25      1  19
4    52      0  23
5    52      0  19
6    52      0  24
7    23      1  25
8    52      0  21
9    52      0  22
10   52      0  20

> head(RL, 20) # "long" data, counting-process form
     start stop arrest.time age
1.1      0    1           0  27
1.2      1    2           0  27
1.3      2    3           0  27
1.4      3    4           0  27
1.5      4    5           0  27
1.6      5    6           0  27
1.7      6    7           0  27
1.8      7    8           0  27
1.9      8    9           0  27
1.10     9   10           0  27
1.11    10   11           0  27
1.12    11   12           0  27
1.13    12   13           0  27
1.14    13   14           0  27
1.15    14   15           0  27
1.16    15   16           0  27
1.17    16   17           0  27
1.18    17   18           0  27
1.19    18   19           0  27
1.20    19   20           1  27

--------------- snip ------------

I have no trouble fitting a Cox model to both the wide and long forms of the data, obtaining (as should be the case) identical results:

--------------- snip ------------

> coxph(Surv(week, arrest) ~ age, data=RW)  # works
Call:
coxph(formula = Surv(week, arrest) ~ age, data = RW)


      coef exp(coef) se(coef)    z    p
age 0.0963    1.1011   0.2073 0.46 0.64

Likelihood ratio test=0.21  on 1 df, p=0.643
n= 10, number of events= 4 
> coxph(Surv(start, stop, arrest.time) ~ age,  data=RL) # works, same
Call:
coxph(formula = Surv(start, stop, arrest.time) ~ age, data = RL)


      coef exp(coef) se(coef)    z    p
age 0.0963    1.1011   0.2073 0.46 0.64

Likelihood ratio test=0.21  on 1 df, p=0.643
n= 397, number of events= 4 

--------------- snip ------------

But when I try to fit a parametric survival regression with survreg(), I get an error with the long form of the data:

--------------- snip ------------

> survreg(Surv(week, arrest) ~ age, data=RW) # works
Call:
survreg(formula = Surv(week, arrest) ~ age, data = RW)

Coefficients:
(Intercept)         age 
 6.35386771 -0.08982624 

Scale= 0.7363196 

Loglik(model)= -22.1   Loglik(intercept only)= -22.2
	Chisq= 0.3 on 1 degrees of freedom, p= 0.58 
n= 10 

> survreg(Surv(start, stop, arrest.time) ~ age,  data=RL) # fails
Error in survreg(Surv(start, stop, arrest.time) ~ age, data = RL) : 
  Invalid survival type

--------------- snip ------------

I expect that there's something about survreg() that I'm missing. I first noted this problem quite some time ago but didn't look into it carefully because I didn't really need to use survreg().

Any help would be appreciated.

Thanks,
 John
-----------------------------
John Fox, Professor
McMaster University
Hamilton, Ontario
Canada L8S 4M4
Web: socserv.mcmaster.ca/jfox



More information about the R-help mailing list