Solved – Estimate Survival Function from hazard function — an inconsistent result between basehaz and survfit function

I am trying to caculate survival function in a time dependent covariates Cox model from its baseline hazard function. However, my program gives a different result compared with survfit. Based on the formula


result should match. I just need this program for illustration but speed. The data I used can be download here and program have been attached. Figure 1 shown the graph generated by the program below.

library(survival) fit.cox  <- coxph( Surv(t1,t2,event) ~ x, data = sim$data) lambda0 <- basehaz(fit.cox, centered = F)  # Estimated Baseline Hazard Function  # Caculate Survival Function t.cut   <- sim$t.cut     lambda0 <- rbind(lambda0, c(0,0) )     x       <- sim$x[1, ] beta    <- fit.cox$coefficients pred    <- exp( x * beta )  #Baseline Hazard Function  <- function(t) {     approx(x = lambda0$time, y = lambda0$hazard, xout = t)$y }  #Hazard Function <- function(t){   which.t <- sum(t >= t.cut) * pred[which.t]   }  #Survival Function <- function(t){   cum.hazard <- integrate(Vectorize(, 0, t, subdivisions = 1e3L)   exp(- cum.hazard$value) }  #Test Program test <-sim$data[1,] s.est <- Vectorize(,2,0.1)) s.est2 <- survfit(fit.cox, newdata = test, id = id,       = F, type = "efron") plot(s.est2, xlim = c(0,2)) points(seq(0,2,0.1), s.est) 

After looking for the source code of basehaz.S, I've got the reason why I am wrong here. First basehaz simply compute cumulate hazard function $Lambda_0(t)$ by using survfit instead of instantaneous hazard function $lambda_0(t)$

Second the main code for basehaz.S is

    sfit<-survfit(fit)     H<- -log(sfit$surv) 

Then it's wrong to use this function to estimate a time dependent covariates Cox model (which require id option in survfit).

I think we should avoid to use the basehaz function becuase it exists only because Prof. Therneau try to comfort SAS programmers as he described in the document of basehaz function.

Similar Posts:

Rate this post

Leave a Comment