如何用stargazer报告coxph回归模型的exp(coefs)?
解决方法
stargazer本身没有内置类似exponentiate = TRUE的直接参数来处理coxph模型的系数指数化,但可以通过两种方式实现展示exp(coefs)(即风险比HR)的需求:
方法一:利用stargazer的参数直接转换
通过apply.coef参数对系数取指数,同时传入指数化后的置信区间,确保结果正确:
library(stargazer) # 提取模型的置信区间并指数化 hr_ci <- exp(confint(My.model)) # 生成带风险比的结果表 stargazer(My.model, apply.coef = exp, # 将系数转换为风险比 ci.custom = list(hr_ci), # 传入指数化后的置信区间 type = "text", # 输出格式,可选"html"/"latex" title = "Cox比例风险模型结果(风险比)")
注意:如果只设置apply.coef = exp,表格中的置信区间仍会保留log尺度的数值,必须搭配ci.custom传入指数化后的置信区间,才能得到HR对应的可信区间。
方法二:先转换模型结果再传入stargazer
可以用broom包的tidy()函数先将模型结果转换为指数形式的数据框,再传入stargazer:
library(broom) library(stargazer) # 转换模型结果为风险比格式 model_hr <- tidy(My.model, exponentiate = TRUE) # 生成表格 stargazer(model_hr, type = "text", summary = FALSE, # 因为传入的是数据框,关闭默认汇总统计 title = "Cox比例风险模型结果(风险比)")
这种方式更灵活,适合需要提前处理结果的场景。
内容的提问来源于stack exchange,提问作者Macosso
相关产品推荐
相关产品推荐

