>假设我有my.model
My.model <- coxph(Surv(stop, event) ~ (rx + size + number) * strata(enum),
cluster = id, bladder1)
我想创建一个包含exp(coefs)
而不是coefs
的模型报告表
stargazer(my.model)
是否有像exponentiate = TRUE
这样的参数会报告exp(coefs)
而不是coefs
?,或者我需要在传递给stargazer()
之前转换模型结果?
为了得到指数系数,需要添加参数apply.coef = exp, p.auto = FALSE, t.auto = FALSE
。
My.model <- coxph(Surv(stop, event) ~ rx + size + number,
cluster = id, bladder)
原始模型未转换的娇夫
stargazer(My.model, align=TRUE,
type="text", digits = 3)
================================================
Dependent variable:
---------------------------
stop
------------------------------------------------
rx -0.540*
(0.200)
size -0.055
(0.070)
number 0.193***
(0.046)
------------------------------------------------
Observations 340
R2 0.064
Max. Possible R2 0.971
Log Likelihood -588.104
Wald Test 12.510*** (df = 3)
LR Test 22.321*** (df = 3)
Score (Logrank) Test 25.183*** (df = 3)
================================================
Note: se in parenthesis *p<0.1; **p<0.05; ***p<0.01
使用参数apply.coef = exp
进行指数运算。
stargazer(My.model, align=TRUE, apply.coef = exp,
type="text", digits = 3)
================================================
Dependent variable:
---------------------------
stop
------------------------------------------------
rx 0.583***
(0.200)
size 0.947***
(0.070)
number 1.213***
(0.046)
------------------------------------------------
Observations 340
R2 0.064
Max. Possible R2 0.971
Log Likelihood -588.104
Wald Test 12.510*** (df = 3)
LR Test 22.321*** (df = 3)
Score (Logrank) Test 25.183*** (df = 3)
================================================
Note: se in parenthesis *p<0.1; **p<0.05; ***p<0.01
然而,正如你所看到的,星星提供了误导性的推断,因为t.stat = coef/se,然而,在这种情况下,指数coef被用作分子来计算t统计和p值。
溶液
解决方案是p.auto = FALSE
添加参数,t.auto = FALSE
这将允许使用原始系数来计算模型的 t.stats 和 p.值。
stargazer(My.model, align=TRUE,
type="text", apply.coef = exp, p.auto = FALSE,
t.auto = FALSE, digits = 3)
================================================
Dependent variable:
---------------------------
stop
------------------------------------------------
rx 0.583*
(0.200)
size 0.947
(0.070)
number 1.213***
(0.046)
------------------------------------------------
Observations 340
R2 0.064
Max. Possible R2 0.971
Log Likelihood -588.104
Wald Test 12.510*** (df = 3)
LR Test 22.321*** (df = 3)
Score (Logrank) Test 25.183*** (df = 3)
================================================
Note: se in parenthesis *p<0.1; **p<0.05; ***p<0.01
此外,为了避免与读者混淆,您可以报告 t.stats 或 pvalues 而不是标准错误。
stargazer(My.model, align=TRUE,
type="text", apply.coef = exp, p.auto = FALSE,
t.auto = FALSE, digits = 3, report=('vc*p'))
================================================
Dependent variable:
---------------------------
stop
------------------------------------------------
rx 0.583*
p = 0.070
size 0.947
p = 0.535
number 1.213***
p = 0.005
------------------------------------------------
Observations 340
R2 0.064
Max. Possible R2 0.971
Log Likelihood -588.104
Wald Test 12.510*** (df = 3)
LR Test 22.321*** (df = 3)
Score (Logrank) Test 25.183*** (df = 3)
================================================
Note: *p<0.1; **p<0.05; ***p<0.01
您可以使用stargazer
的apply.coef
参数,如下所示:
stargazer(model, apply.coef = exp)
根据下一篇文章中的链接,您可能需要为标准错误做一些更复杂的事情。
观星者() LaTeX 输出中的优势比而不是对数
get.or.se <- function(model) {
broom::tidy(model) %>%
mutate(or = exp(estimate),
var.diag = diag(vcov(model)),
or.se = sqrt(or^2 * var.diag)) %>%
select(or.se) %>% unlist %>% unname
}
(代码借用链接,可能需要稍微调整一下才能survival
)