本文介绍了异方差校正标准差回归的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想找到最接近STATA输出的R实现,用于用异方差校正的标准误差来拟合最小二乘回归函数。具体地说,我希望修正后的标准误差在"总结"中,而不必为我的第一轮假设检验做额外的计算。我正在寻找一种与Eview和Stata提供的一样"干净"的解决方案。
到目前为止,使用"lmtest"包我能想到的最好结果是:
model <- lm(...)
coeftest(model, vcov = hccm)
这给了我想要的输出,但它似乎没有将"coeftest"用于其声明的目的。我还必须使用带有不正确标准误差的摘要来读出R^2和F统计数据等。我认为,鉴于R是多么动态,应该有一个"一行"解决方案来解决这个问题。
谢谢
推荐答案
我认为使用包lmtest中的coeftest
是正确的。请看sandwich package,它包含此功能,旨在与您已经找到的lmtest包协同工作。
> # generate linear regression relationship
> # with Homoskedastic variances
> x <- sin(1:100)
> y <- 1 + x + rnorm(100)
> ## model fit and HC3 covariance
> fm <- lm(y ~ x)
> vcovHC(fm)
(Intercept) x
(Intercept) 0.010809366 0.001209603
x 0.001209603 0.018353076
> coeftest(fm, vcov. = vcovHC)
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.01973 0.10397 9.8081 3.159e-16 ***
x 0.93992 0.13547 6.9381 4.313e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
若要获得F测试,请查看函数waldtest()
:
> waldtest(fm, vcov = vcovHC)
Wald test
Model 1: y ~ x
Model 2: y ~ 1
Res.Df Df F Pr(>F)
1 98
2 99 -1 48.137 4.313e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
如果您想要一行程序,您总是可以编写一个简单的函数来为您组合这两个函数...
在Econometric Computing with HC and HAC Covariance Matrix Estimators随附的三明治包中有很多示例,链接lmtest和三明治可以做您想做的事情。
编辑:一行程序可以简单到:
mySummary <- function(model, VCOV) {
print(coeftest(model, vcov. = VCOV))
print(waldtest(model, vcov = VCOV))
}
我们可以这样使用(在上面的示例中):
> mySummary(fm, vcovHC)
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.01973 0.10397 9.8081 3.159e-16 ***
x 0.93992 0.13547 6.9381 4.313e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Wald test
Model 1: y ~ x
Model 2: y ~ 1
Res.Df Df F Pr(>F)
1 98
2 99 -1 48.137 4.313e-10 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
这篇关于异方差校正标准差回归的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!