如何解决Stargazer:标准错误和置信区间的自定义参数覆盖首先报告的内容
大家好:这与 this other question I asked here 非常相关,因此对此的回应可能会使它过时,但我还是想我会标记它。
如果我想使用 stargazer
在单个表中报告标准误差和置信区间,我不能在模型的单个列中这样做,如 {{3} }.将它们放入单个表的解决方法是两次“报告”模型。例如下面的代码:
set.seed(04152020)
x <- rnorm(100)
y <- 2*x + rnorm(100)
m1 <- lm(y~x)
library(stargazer)
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
现在我想这很好......但是(这是我问题的核心):如果我尝试提供自定义置信区间,例如,执行稳健的标准错误,此选项会覆盖选择什么统计量在每一列中报告,使早期的解决方法过时。这个例子说明了我的意思:
library(lmtest)
library(sandwich)
stargazer(list(m1,ci.custom = list(coefci(m1,vcov = vcovHC(m1,type = "HC2")),coefci(m1,type = "HC2"))),type = "text")
理论上应该报告第一列的标准误差和第二列的自定义置信区间,如 ci = c(FALSE,TRUE)
所反映的那样。相反,它为两列生成置信区间:
===============================================================
Dependent variable:
---------------------------------
y
(1) (2)
---------------------------------------------------------------
x 1.981*** 1.981***
(1.756,2.206) (1.756,2.206)
Constant -0.218** -0.218**
(-0.425,-0.010) (-0.425,-0.010)
---------------------------------------------------------------
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
现在,您可能会想——这可能是因为我也为第一个模型提供了自定义置信区间。这种直觉是正确的,但是如果我尝试将其删除或不提供任何内容,则会出现错误。例如:
stargazer(list(m1,ci.custom = list(NULL,type = "text")
产生以下错误:
Error in array(x,c(length(x),1L),if (!is.null(names(x))) list(names(x),:
'data' must be of a vector type,was 'NULL'
以及以下内容:
stargazer(list(m1,ci.custom = list(NA,type = "text")
Error in if (ncol(ci.custom[[i]]) != 2) { : argument is of length zero
stargazer(list(m1,se = list(sqrt(diag(vcovHC(m1,apply(round(coefci(m1,type = "HC2"))[,1:2],3),1,paste,collapse = ",")),type = "text")
% Error: Argument 'se' must be NULL (default),or a list of numeric vectors.
所有这些错误都有道理,但对我没有帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。