You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:28:21