如何用R中crrSC包的crrs()获取分层Fine-Gray模型的HR及95%CI
获取crrs()模型的风险比(HR)及95%置信区间
crrs()函数的返回对象中已经包含了计算HR和置信区间所需的系数(coef)和标准误(se),你可以手动计算并整理成易读的格式,步骤如下:
步骤1:提取模型的系数和标准误
从分层Fine-Gray模型对象fg_mod_strat中直接提取核心统计量:
# 提取回归系数 coefs <- fg_mod_strat$coef # 提取系数对应的标准误 ses <- fg_mod_strat$se
步骤2:计算风险比(HR)和95%置信区间
利用指数函数将线性系数转换为风险比,再通过系数±1.96倍标准误的指数计算置信区间:
# 计算风险比HR hr <- exp(coefs) # 计算95%置信区间下限 ci_lower <- exp(coefs - 1.96 * ses) # 计算95%置信区间上限 ci_upper <- exp(coefs + 1.96 * ses)
步骤3:整理结果为易读的数据框
把系数、HR、置信区间整合到一个数据框中,方便查看和导出:
# 整理成结构化数据框 result_df <- data.frame( 回归系数 = coefs, 风险比HR = round(hr, 3), 95%置信区间 = paste0(round(ci_lower, 3), " - ", round(ci_upper, 3)), row.names = colnames(covariates) # 用协变量名称作为行名 ) # 打印结果 print(result_df)
完整示例代码
结合你提供的代码,完整的演示如下:
library(casebase) library(cmprsk) library(crrSC) head(bmtcrr) covariates <- model.matrix(~bmtcrr$Age)[,-1] ### 分层Fine-Gray模型拟合 fg_mod_strat <- crrs(ftime = bmtcrr$ftime, fstatus = bmtcrr$Status, covariates, strata = bmtcrr$Sex, failcode = 1, cencode = 0, ctype = 1) # 提取系数与标准误 coefs <- fg_mod_strat$coef ses <- fg_mod_strat$se # 计算HR及置信区间 hr <- exp(coefs) ci_lower <- exp(coefs - 1.96 * ses) ci_upper <- exp(coefs + 1.96 * ses) # 整理输出结果 result_df <- data.frame( 回归系数 = round(coefs, 3), 风险比HR = round(hr, 3), 95%置信区间 = paste0(round(ci_lower, 3), " - ", round(ci_upper, 3)), row.names = colnames(covariates) ) print(result_df)
这样就能得到和cmprsk包summary()输出类似的HR及置信区间结果。
内容的提问来源于stack exchange,提问作者Pontus Hedberg
相关产品推荐
相关产品推荐

