在 R 中具有时变协变量的 Weibull 生存模型

机器算法验证 r 生存 cox模型 威布尔分布
2022-03-15 16:36:59

我正在尝试使用 Weibull 方法运行生存模型,但问题是我有随时间变化的协变量。我正在使用 R 中的生存包。我的电话是:

output <- survreg(Surv(start, stop, fail) ~ gdppc + [...] + cluster(name), data = mydata, dist="weibull")

这会产生以下错误:

Error in survreg(Surv(start, stop, fail) ~ gdppclag + : 
  Invalid survival type

coxph程序运行良好,但我想使用weibull。

我的第一个问题是:威布尔方法可以解释时变协变量吗?我查看了一些文本,发现 Cox PH 方法可以扩展到时变协变量。Weibull 方法是否可以做到这一点尚不清楚。

其次,如果 Weibull 确实可以工作,那么 R 中可以处理它的包是什么?

3个回答

flexurv包可以这样做:https ://cran.r-project.org/web/packages/flexsurv/index.html

只需调用flexsurvreg函数而不是survreg.

您可以Survival通过以下方式使用 package 进行操作:

Srv <- Surv(start, stop, fail, type="interval" )

然后你可以Srv在你的模型中使用:

output <- survreg(Surv(start, stop, fail) ~ gdppc + [...] + cluster(name), data = mydata, dist="weibull")

希望这可以帮助:)

这也可以通过eha包中的aftreg命令来实现。要获得来自survival包的命令以及来自flexsurv包的命令通常使用的相同参数化,该选项必须设置为,如包的文档中所述。因此,您的代码的改编如下:survregflexsurvregparam"LifeExp"

output <- aftreg(Surv(start, stop, fail) ~ gdppc + [...] + cluster(name), data = mydata, dist="weibull", param="lifeExp")

该命令的一个优点eha::aftreg是它与stargazer兼容,因此可以轻松地将其输出导出为 LaTeX 格式。