0

我有一个关于在 R 中使用“survreg”生成生存时间的问题。首先,使用当前数据和带有 weibull 分布的“survreg”函数,我确实估计了 X 的 weibull 参数(形状和比例)和 beta。然后,我生成了新的生存使用这些参数的时间。但是,新生成的生存时间和现有的生存时间有很大的不同。我为此展示了一些我的 r 代码。


##initial parameter
  wei.par <- survreg(Surv(t,cens) ~ x1+x2+x3, data=data, dist="weibull")
  a <- 1/wei.par$scale                 #shape parm
  b <- exp(wei.par$coefficients[1])    #scale parm
  par.vec <- coef(wei.par)[2:4]        #beta parameters for x1-x3


##Generate random uniform number needed to generate time to events  
  u <- runif(nrow(data))

##Generate time to events using Cox's PH model with Weibull baseline hazards
  data$t1 <- b*(-log(1-u)*exp(as.matrix(data[,c(2:4)]) %*% as.matrix(par.vec)))^(1/a)

我在下面看到了一些新生成时间(t1)的代码。 t2 <- b * ( -ln( 1-runif(1000) ) ) ^(1/a)或者

t2 <- (-log(1-u)/exp(as.matrix(x) %*% as.matrix(surv.coef)))^(1/b)*a^-1
4

0 回答 0