如何在R中拟合脆弱生存模型
因为这是一个很长的问题,我把它分为两部分;第一个问题只是基本问题,第二个问题提供了我到目前为止所做尝试的细节 问题-简短 你如何在R中拟合个体脆弱生存模型?特别是,我试图重新创建下表中的系数估计值和SE,它们是通过将半参数脆弱性模型拟合到此数据集而发现的。模型采用以下形式:如何在R中拟合脆弱生存模型,r,survival,R,Survival,因为这是一个很长的问题,我把它分为两部分;第一个问题只是基本问题,第二个问题提供了我到目前为止所做尝试的细节 问题-简短 你如何在R中拟合个体脆弱生存模型?特别是,我试图重新创建下表中的系数估计值和SE,它们是通过将半参数脆弱性模型拟合到此数据集而发现的。模型采用以下形式: h_i(t) = z_i h_0(t) exp(\beta'X_i) 其中,z_i是每位患者的未知脆弱性参数,X_i是解释变量的向量,\beta是相应的系数向量,h_0(t)是使用解释变量疾病性别的基线风险函数,体重指数和
h_i(t) = z_i h_0(t) exp(\beta'X_i)
其中,z_i
是每位患者的未知脆弱性参数,X_i
是解释变量的向量,\beta
是相应的系数向量,h_0(t)
是使用解释变量疾病性别的基线风险函数,体重指数和年龄(我在下面加入了清理因子参考水平的代码)。
问题长
我试图遵循并重新创建用于安装脆弱MDOEL的教科书示例。我特别关注的是半参数模型,教科书提供了上表所示的正态cox模型、对数正态脆弱性和伽马脆弱性的参数和方差估计
我能够使用
library(dplyr)
library(survival)
dat <- read.table(
"./Survival of patients registered for a lung transplant.dat",
header = T
) %>%
as_data_frame %>%
mutate( disease = factor(disease, levels = c(3,1,2,4))) %>%
mutate( gender = factor(gender, levels = c(2,1)))
mod_cox <- coxph( Surv(time, status) ~ age + gender + bmi + disease ,data = dat)
mod_cox
生存-在gamma上给出警告,从我读到的所有信息来看,它的脆弱功能被归类为贬值功能,建议改用coxme
coxph(
Surv(time, status) ~ age + gender + bmi + disease + frailty.gamma(patient),
data = dat
)
coxph(
Surv(time, status) ~ age + gender + bmi + disease + frailty.gaussian(patient),
data = dat
)
coxme-似乎有效,但提供了与表中不同的估计值,不支持伽马分布
coxme::coxme(
Surv(time, status) ~ age + gender + bmi + disease + (1|patient),
data = dat
)
脆弱性surv-我无法正常工作,似乎总是用一个平坦的值1拟合方差参数,并提供系数估计,就好像没有拟合脆弱性模型一样。此外,文档中没有说明什么字符串支持脆弱参数,因此我无法确定如何使其适合正常日志
frailtySurv::fitfrail(
Surv(time, status) ~ age + gender + bmi + disease + cluster(patient),
dat = dat,
frailty = "gamma"
)
frailtyHL-产生警告信息,表示“未收敛”,但仍产生了系数估计,但与教科书不同
mod_n <- frailtyHL::frailtyHL(
Surv(time, status) ~ age + gender + bmi + disease + (1|patient),
data = dat,
RandDist = "Normal"
)
mod_g <- frailtyHL::frailtyHL(
Surv(time, status) ~ age + gender + bmi + disease + (1|patient),
data = dat,
RandDist = "Gamma"
)
mod_n关于
我真的很难找到一个包,可以可靠地重新创建第二个2列的结果
请参阅随机效应模型或搜索,例如“生存脆弱性”。如果您的问题只是关于如何使用R、哪个软件包、什么代码等,则此处不再讨论。这是一个大问题,可能不会得到太多的回应。你可能在r-help上做得最好。如果您想让我将此迁移到SO,请告诉我。Hi@gung,事实上,我认为我不太可能在SO上得到回复,这就是为什么我在这里发布了文章,因为我认为这里更注重统计的用户知道答案或能够提供帮助的机会更大。如果你仍然坚持这是离题的话,那么是的,请你转给SO;如果我没有收到任何回复,我会按照你的建议尝试联系r-help。你有肺移植患者的存活率登记数据吗?看看survival的?survreg
,你在那里提供了一个发行版。嗨@Parfait,我已经更新了这个问题,试图把它弄清楚,还附加了一个直接链接到下载数据集。谢谢你的建议survreg
虽然专注于拟合参数化模型,但半参数化模型生存包中的等价物是coxph
,但脆弱部分似乎被归类为贬值,以支持coxme
包,我无法正常工作感谢您的建议;从这个资源看来,frailtypack
是生存脆弱性建模的最高评分包。我曾试图使用这个软件包,但很难理解它或让它正常工作,因为它的实现似乎与教科书中所做的非常不同。特别是,您似乎必须指定一些结点和更平滑的值,这似乎对结果有很大影响(我不知道如何使用这些值来重新创建上述数字);我会看一看,看看我是否能用这些来解决我的问题。第一篇论文可能与你最相关。不过,据我回忆,打包的是相关的生存数据,而如果我正确理解你的问题,你的问题只涉及到个人的弱点?我不确定您是否可以将此类模型与frailtypack
中的任何函数相匹配。例如,嵌套的脆弱模型是您想要的,但没有第3页上的共享$v_I$效果。
mod_n <- frailtyHL::frailtyHL(
Surv(time, status) ~ age + gender + bmi + disease + (1|patient),
data = dat,
RandDist = "Normal"
)
mod_g <- frailtyHL::frailtyHL(
Surv(time, status) ~ age + gender + bmi + disease + (1|patient),
data = dat,
RandDist = "Gamma"
)