我有一个关于在 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