1

我正在使用spdep库中的errorsarlm()函数拟合空间错误模型。使用bptest.sarlm()函数计算的空间模型的 Breusch-Pagan 检验表明存在异方差。

下一步自然是获得稳健的标准误差估计并更新 p 值。在bptest.sarlm()函数的文档中说:

“通过使用 sarlm 对象的“lm.target”组件——使用 lmtest 和三明治包中的函数,在技术上也可以对标准误差估计进行异方差校正。”

并提供以下代码(作为参考):

lm.target <- lm(error.col$tary ~ error.col$tarX - 1)
if (require(lmtest) && require(sandwich)) {
  print(coeftest(lm.target, vcov=vcovHC(lm.target, type="HC0"), df=Inf))} 

其中error.col是估计的空间误差模型。

现在,我可以轻松地使代码适应我的问题并获得稳健的标准错误。不过,我想知道:

  • sarlm 对象的“lm.target”组件到底是什么?我在 spdep 文档中找不到任何提及。
  • $tary 和 $tarX 到底是什么?同样,文档中似乎没有提到它。
  • 为什么文档说“在技术上可以进行异方差校正”?这是否意味着并不真正推荐所提出的方法来克服异方差问题?
4

1 回答 1

1

我在 github 上报告了这个问题,并得到了Roger Bivand 的回复:

不,根本不推荐这种方法。使用 sphet 或贝叶斯方法给出边际后验分布。我将放弃令人困惑的文档。tary 是 $y - \rho W y$ 并且在空间误差模型情况下对于 tarX 也是如此。请注意,tary 等仅出现在 localmoran.exact() 和 localmoran.sad() 的文档中的 spdep 中;您是否使用过时的软件包版本?

于 2021-12-06T14:32:11.097 回答