问题描述
我非常喜欢 Stargazer,但在尝试将标准误差和置信区间全部报告在一个表格中时遇到了一些问题。
将此简单回归视为可重现的示例:
set.seed(04152020)
x <- rnorm(100)
y <- 2*x + rnorm(100)
m1 <- lm(y~x)
我可以使用 ci
选项在两个单独的表中报告标准误差和置信区间,没有问题。
library(stargazer)
# standard errors
stargazer(m1,type = "text")
# confidence intervals
stargazer(m1,ci = FALSE,type = "text")
将它们放入单个表的解决方法是两次“报告”模型,但随后不必要地重复系数。例如下面的代码:
stargazer(list(m1,m1),ci = c(FALSE,TRUE),type = "text")
产生:
==========================================================
Dependent variable:
----------------------------
y
(1) (2)
----------------------------------------------------------
x 1.981*** 1.981***
(0.110) (1.766,2.196)
Constant -0.218** -0.218**
(0.104) (-0.421,-0.014)
----------------------------------------------------------
Observations 100 100
R2 0.769 0.769
Adjusted R2 0.766 0.766
Residual Std. Error (df = 98) 1.032 1.032
F Statistic (df = 1; 98) 325.893*** 325.893***
==========================================================
Note: *p<0.1; **p<0.05; ***p<0.01
有没有办法将标准误和置信区间自动放入一个列中,就像处理 p 值一样?例如。这段代码:
stargazer(m1,report = ('vcsp'),type = "text")
产生我想要的,但使用 p 值,并且允许它的选项的文档 - report
- 似乎只允许选择 p 值,如 {{3} }.
===============================================
Dependent variable:
---------------------------
y
-----------------------------------------------
x 1.981
(0.110)
p = 0.000
Constant -0.218
(0.104)
p = 0.039
-----------------------------------------------
Observations 100
R2 0.769
Adjusted R2 0.766
Residual Std. Error 1.032 (df = 98)
F Statistic 325.893*** (df = 1; 98)
===============================================
Note: *p<0.1; **p<0.05; ***p<0.01
解决方法
我不知道如何在 stargazer
中执行此操作,但是您可以使用 modelsummary
package 轻松实现所需的结果。 (免责声明:我是作者。)
library(modelsummary)
set.seed(04152020)
x <- rnorm(100)
y <- 2*x + rnorm(100)
m1 <- lm(y~x)
modelsummary(m1,statistic = c("std.error","conf.int"))
你也可以做这样疯狂的事情,as described on the website:
modelsummary(models,gof_omit = ".*",statistic = c("conf.int","s.e. = {std.error}","t = {statistic}","p = {p.value}"))