如何在R

时间:2018-03-09 18:03:20

标签: r survival

因为这是一个很长的问题,我把它分成两部分;第一个是基本问题,第二个提供了迄今为止我尝试过的细节。

问题 - 简短

你如何适应R中的个人脆弱生存模式?特别是我试图在下表中重新创建系数估计和SE,这是通过将半参数脆弱模型拟合到该数据集link而得到的。该模型采用以下形式:

h_i(t) = z_i h_0(t) exp(\beta'X_i)

其中z_i是每个患者的未知脆弱参数,X_i是解释变量的向量,\beta是系数的对应向量,h_0(t)是基线危险函数使用解释变量疾病性别 bmi & 年龄(我在下面添加了代码来清理因子参考水平)。 enter image description here

问题 - 长

我正在尝试关注并重新创建Modelling Survival Data in Medical Research教科书示例来装配脆弱的门槛。特别是我专注于半参数模型,教科书为正常的考克斯模型提供参数和方差估计,对数正态脆弱和Gamma脆弱,如上表所示

我能够使用

重新创建无脆弱模型估计
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

然而,我真的很难找到一个能够可靠地重新创建第二列的结果的包。在线搜索我发现这个表试图总结可用的包:

enter image description here source

下面我发布了我目前的调查结果以及我使用过的代码,它可以帮助某人确定我是否只是错误地指定了这些功能:

frailtyEM - 似乎最适合使用gamma但不能提供对数正态模型

frailtyEM::emfrail(
    Surv(time, status) ~ age + gender + bmi + disease + cluster(patient), 
    data = dat ,
    distribution = frailtyEM::emfrail_dist(dist = "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
)

frailtySurv - 我无法正常工作,似乎总是使方差参数的平坦值为1,并提供系数估计值,好像没有安装脆弱模型一样。此外,文档没有说明哪些字符串支持脆弱的参数,所以我无法弄清楚如何使其适合日志正常

frailtySurv::fitfrail(
    Surv(time, status) ~ age + gender + bmi + disease + cluster(patient),
    dat = dat,
    frailty = "gamma"
)

frailtyHL - 发出警告信息,说&#34;没有收敛&#34;然而它仍然产生了系数估计,但它们与教科书的不同

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"
)

frailtypack - 我根本不了解实施情况(或者至少与教科书中的内容完全不同)。该功能需要结点和更平滑的规范,这似乎会对结果估计产生很大影响。

parfm - 仅适合参数化模型;我曾经说过,每当我试图用它来拟合威布尔比例风险模型时,它就是错误的。

phmm - 尚未尝试

我完全理解,鉴于我所获得的大量软件包失败,很可能问题是我自己没有正确理解实现并错过了使用软件包。任何有关如何成功重新创建上述估算的帮助或示例都会非常感激。

1 个答案:

答案 0 :(得分:1)

关于

  

我真的很难找到一个可以可靠地重新创建第二列的结果的包。

查看随机效果模型下的Survival Analysis CRAN task view或在R Site Search上搜索例如&#34; 生存脆弱&#34 ;