2

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

问题 - 简短

你如何在 R 中拟合个体脆弱的生存模型?特别是,我正在尝试重新创建下表中的系数估计值和 SE,它们是通过将半参数脆弱模型拟合到此数据集链接中找到的。该模型采用以下形式:

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

其中z_i是每个患者的未知脆弱参数,X_i是解释变量的向量,\beta是相应的系数向量,并且h_0(t)是使用解释变量疾病性别bmi年龄的基线风险函数(我在下面包含代码以清理因子参考水平)。 在此处输入图像描述

问题 - 长

我正在尝试遵循并重新创建医学研究教科书中的建模生存数据示例,以拟合脆弱的 mdoels。我特别关注半参数模型,教科书提供了上表中显示的正常 cox 模型、对数正态脆弱性和 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

但是我真的很难找到一个可以可靠地重新创建第二个 2 列结果的包。在网上搜索我发现了这个表,它试图总结可用的包:

在此处输入图像描述 资源

下面我发布了我当前的发现以及我使用的代码,它可以帮助人们识别我是否只是错误地指定了函数:

frailtyEM - 似乎最适合伽马,但不提供对数正态模型

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 拟合方差参数,并提供系数估计值,就好像没有拟合出脆弱的模型一样。此外,文档没有说明哪些字符串支持 frailty 参数,所以我无法弄清楚如何让它适合对数正常

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

frailtyHL - 产生警告信息说“没有收敛”但它仍然产生coeficiant估计但它们与教科书不同

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 - 还没试过

鉴于我没有成功通过大量软件包,我非常感谢,问题很可能是我自己没有正确理解实现并且错过了使用这些软件包。任何有关如何成功重新创建上述估计的帮助或示例将不胜感激。

4

1 回答 1

1

关于

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

请参阅随机效应模型下的生存分析 CRAN 任务视图,或在R Site Search上进行搜索,例如“生存脆弱”。

于 2018-03-09T23:32:09.460 回答