如何从coxph模型的summary结果中提取exp(-coef)列的数值
解答
关于therapy=0对应HR的取值说明
二分类自变量therapy默认以0为参考组时,exp(coef)表示therapy=1相对于therapy=0的风险比(HR)。你提到的1 - exp(coef)是完全错误的计算逻辑,不属于HR的取值范畴。
如果要计算therapy=0相对于therapy=1的HR,等价于exp(coef)的倒数,而数学上1/exp(coef) = exp(-coef),二者计算结果完全一致,任选一种方式计算即可。
exp(-coef)数值提取方法
survival包的coxph()模型默认summary结果的系数矩阵中没有内置exp(-coef)列,不需要尝试从已有列中读取,直接通过原始系数计算即可,常用方法如下:
- 方法1:直接通过拟合对象的原始系数计算
exp_neg_coef <- exp(-coef(mycoxfit))
- 方法2:从summary的系数表中提取
exp(coef)后取倒数
# summary系数表第2列为exp(coef) exp_neg_coef <- 1 / summary(mycoxfit)$coefficients[, 2]
- 方法3:如果需要把该列加入系数汇总表统一管理,可以这样操作:
# 转换为数据框方便操作 cox_summary_df <- as.data.frame(summary(mycoxfit)$coefficients) # 新增exp(-coef)列 cox_summary_df$`exp(-coef)` <- exp(-cox_summary_df[, 1]) # 提取对应列即可 exp_neg_coef <- cox_summary_df$`exp(-coef)`
如果你之前看到的结果里有exp(-coef)列,大概率是用了broom、survminer这类第三方包做了汇总输出,本质也是通过上述逻辑计算得到的,直接自行计算更灵活可控。
内容的提问来源于stack exchange,提问作者MDStat
相关产品推荐
相关产品推荐

