我已经读了很多关于将简易鲁棒选项从STATA复制到R以使用鲁棒标准错误的痛苦。我复制了以下方法:StackExchange和Economic 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
函数?
答案 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))
更新我不太喜欢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统计吗?