使用stargazer()的lm()中的鲁棒标准错误

时间:2019-11-18 21:22:30

标签: stargazer robust

我已经读了很多关于将简易鲁棒选项从STATA复制到R以使用鲁棒标准错误的痛苦。我复制了以下方法:StackExchangeEconomic Theory Blog。它们可以工作,但是我面临的问题是,如果我想使用stargazer函数打印结果(这会为乳胶文件打印.tex代码)。

这是我的问题的说明:

reg1 <-lm(rev~id + source + listed + country , data=data2_rev)
stargazer(reg1)

这会将R输出打印为.tex代码(非鲁棒SE)。如果我想使用鲁棒SE,则可以使用以下三明治包装实现它:

vcov <- vcovHC(reg1, "HC1")

如果我现在使用stargazer(vcov),则仅输出vcovHC函数的输出,而不输出回归输出本身。

使用包lmtest(),可以至少打印估计量,但不能打印观测值R2,adj。 R2,残差,残差St.Error和F统计量。

lmtest::coeftest(reg1, vcov. = sandwich::vcovHC(reg1, type = 'HC1'))

这将提供以下输出:

t test of coefficients:

            Estimate Std. Error t value Pr(>|t|)   
(Intercept) -2.54923    6.85521 -0.3719 0.710611   
id           0.39634    0.12376  3.2026 0.001722 **
source       1.48164    4.20183  0.3526 0.724960   
country     -4.00398    4.00256 -1.0004 0.319041   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

如何添加或获取具有以下参数的输出?

Residual standard error: 17.43 on 127 degrees of freedom
Multiple R-squared:  0.09676,   Adjusted R-squared:  0.07543 
F-statistic: 4.535 on 3 and 127 DF,  p-value: 0.00469

有人遇到同样的问题并且可以帮助我吗? 如何在lm函数中使用可靠的标准错误并应用stargazer函数?

1 个答案:

答案 0 :(得分:0)

您已经计算出了鲁棒的标准误差,有一种简单的方法可以将其包括在stargazer输出中:

library("sandwich")
library("plm")
library("stargazer")

data("Produc", package = "plm")

# Regression    
model <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
             data = Produc, 
             index = c("state","year"),
             method="pooling")

# Adjust standard errors
cov1         <- vcovHC(model, type = "HC1")
robust_se    <- sqrt(diag(cov1))

# Stargazer output (with and without RSE)
stargazer(model, model, type = "text",
          se = list(NULL, robust_se))

解决方案在这里找到:https://www.jakeruss.com/cheatsheets/stargazer/#robust-standard-errors-replicating-statas-robust-option

更新我不太喜欢F测验。人们正在讨论这些问题,例如https://stats.stackexchange.com/questions/93787/f-test-formula-under-robust-standard-error

跟随http://www3.grips.ac.jp/~yamanota/Lecture_Note_9_Heteroskedasticity

“可以通过将OSL估计量除以其鲁棒的标准误差(对于零个零假设)来获得异方差稳健性t统计量。但是,通常的F统计量无效。相反,我们需要使用异方差稳健性t稳健的Wald统计数据。”

在这里使用Wald统计吗?