R - 如何使用观星者报告Coxph回归的exp(coefs)



>假设我有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

您可以使用stargazerapply.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)

最新更新