Average treatment effect (ATE) for Restricted mean survival and years lost of Competing risks

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(mets)

RMST

Regression for rmst outcome $E(T \wedge t | X) = exp(X^T \beta)$ based on IPCW adjustment for censoring. For full censoring model this is equal to integral of Kaplan-Meier. Also possible to compute Kaplan-Meier or Cox based estimator or rmst [ \int_0^t S(s|X) ds ].

For competing risks the years lost can be computed via cumulative incidence functions or as IPCW estimator since [ E( I(\epsilon=1) ( t - T \wedge t ) | X) = \int_0^t F_1(s) ds. ] For full censoring model these estimators are also equivalent.

set.seed(100)

     data(bmt); bmt$time <- bmt$time+runif(nrow(bmt))*0.001
     # E( min(T;t) | X ) = exp( a+b X) with IPCW estimation 
     out <- resmeanIPCW(Event(time,cause!=0)~tcell+platelet+age,bmt,
                     time=50,cens.model=~strata(platelet),model="exp")
     summary(out)

      ### same as Kaplan-Meier for full censoring model 
     bmt$int <- with(bmt,strata(tcell,platelet))
     out <- resmeanIPCW(Event(time,cause!=0)~-1+int,bmt,time=30,
                                  cens.model=~strata(platelet,tcell),model="lin")
     estimate(out)
     out1 <- phreg(Surv(time,cause!=0)~strata(tcell,platelet),data=bmt)
     rm1 <- resmean.phreg(out1,times=30)
     summary(rm1)

     ## competing risks years-lost for cause 1  
     out <- resmeanIPCW(Event(time,cause)~-1+int,bmt,time=30,cause=1,
                                 cens.model=~strata(platelet,tcell),model="lin")
     estimate(out)
     ## same as integrated cumulative incidence 
     rmc1 <- cif.yearslost(Event(time,cause)~strata(tcell,platelet),data=bmt,times=30,cause=1)
     summary(rmc1)

Average treatment effect

Computes average treatment effect for restricted mean survival

 dfactor(bmt) <- tcell~tcell
 bmt$event <- (bmt$cause!=0)*1
 out <- resmeanATE(Event(time,event)~tcell+platelet,data=bmt,time=40,treat.model=tcell~platelet)
 summary(out)

 out1 <- resmeanATE(Event(time,cause)~tcell+platelet,data=bmt,cause=1,outcome="rmst-cause",
            time=40,treat.model=tcell~platelet)
 summary(out1)

 out2 <- resmeanATE(Event(time,cause)~tcell+platelet,data=bmt,cause=2,outcome="rmst-cause",
            time=40,treat.model=tcell~platelet)
 summary(out2)

SessionInfo

sessionInfo()


Try the mets package in your browser

Any scripts or data that you put into this service are public.

mets documentation built on Jan. 17, 2023, 5:12 p.m.