[R] Can mice() handle crr()? Fine-Gray model

Therneau, Terry M., Ph.D. therneau at mayo.edu
Mon Jan 23 15:46:31 CET 2017


Look at the finegray command within the survival package; the competing risks vignette has 
coverage of it.  The command creates an expanded data set with case weights, such that 
coxph() on the new data set = the Fine Gray model for the original data.  Anything that 
works with coxph is valid on the new data.  Caveat -- I don't know mice() well at all: the 
dat1 data set below has multiple observations per subject, should the mice() command be 
cognizant of this?

Terry Therneau


library(survival)
library(mice)

test1 <- data.frame (time=c(4,3,1,1,2,2,3,5,2,4,5,1,
                             4,3,1,1,2,2,3,5,2,4,5,1),
                      status=c(1,1,1,0,2,2,0,0,1,1,2,0,
                               1,1,1,0,2,2,0,0,1,1,2,0),
                      x=c(0,2,1,1,NA,NA,0,1,1,2,0,1,
                          0,2,1,1,NA,NA,0,1,1,2,0,1),
                      sex=c(0,0,0,NA,1,1,1,1,NA,1,0,0,
                            0,0,0,NA,1,1,1,1,NA,1,0,0)))

# Endpoint 1, simple, then with mice
fit0 <- copxh(Surv(time, status==1) ~ sex + x, test1)
dat0 <- mice(test1, m=10)
mfit0 <- with(dat0, coxph(Surv(time, status==1) ~ sex + x))
summary(pool(mfit0))

# Endpoint 1, Fine-Gray model
fg1 <- finegray(Surv(time, factor(status)) ~ ., data=test1, etype=1)
fit1 <- coxph(Surv(fgstart, fgstop, fgstatus) ~ sex + x, data=fg1,
               weight= fgwt)

dat1 <- mice(fg1, m=10)
mfit1 <- with(dat1, coxph(Surv(fgstart, fgstop, fgstatus) ~ sex + x,
                          weight=fgwt))


On 01/23/2017 05:00 AM, r-help-request at r-project.org wrote:
> Here is an example:
>
>
> # example
>
> library(survival)
> library(mice)
> library(cmprsk)
>
> test1 <- as.data.frame(list(time=c(4,3,1,1,2,2,3,5,2,4,5,1,
> 4,3,1,1,2,2,3,5,2,4,5,1),
>                              status=c(1,1,1,0,2,2,0,0,1,1,2,0,
> 1,1,1,0,2,2,0,0,1,1,2,0),
>                              x=c(0,2,1,1,NA,NA,0,1,1,2,0,1,
> 0,2,1,1,NA,NA,0,1,1,2,0,1),
>                              sex=c(0,0,0,NA,1,1,1,1,NA,1,0,0,
> 0,0,0,NA,1,1,1,1,NA,1,0,0)))
>
> dat <- mice(test1,m=10)
>
> #Cox regression: cause 1
>
> models.cox1 <- with(dat,coxph(Surv(time, status==1) ~ x +sex
> ))
>
> summary(pool(models.cox1))
>
> #Cox regression: cause 1 or 2
>
> models.cox <- with(dat,coxph(Surv(time, status==1 | status==2) ~ x +sex
> ))
> models.cox
> summary(pool(models.cox))
>
>
> # crr()
>
> #Fine-Gray model
>
> models.FG<- with(dat,crr(ftime=time, fstatus=status,  cov1=test1[,c(
> "x","sex")], failcode=1, cencode=0, variance=TRUE))
>
> summary(pool(models.FG))
>
> #Error in pool(models.FG) : Object has no vcov() method.
>
> models.FG
>
>
>
>
> -- Andreu Ferrero Gregori



More information about the R-help mailing list