PLM包中的异方差性强大的标准误差

我在尝试使用Stata后学习R,我必须说我喜欢它。但现在我遇到了一些麻烦。我即将对Panel Data进行一些多次回归,所以我使用的是
plm
包。 现在我希望在R中使用
plm
得到相同的结果,就像我使用
lm
函数和Stata时执行异方差性稳健和实体固定回归一样。 假设我有一个面板数据集,其变量为
Y
ENTITY
TIME
V1
。 我用这段代码在R中得到了相同的标准错误
lm.model<-lm(Y ~ V1 + factor(ENTITY), data=data)
coeftest(lm.model, vcov.=vcovHC(lm.model, type="HC1))
就像我在Stata中执行此回归一样
xi: reg Y V1 i.ENTITY, robust
但是当我使用
plm
包执行此回归时,我得到其他标准错误
plm.model<-plm(Y ~ V1 , index=C("ENTITY","YEAR"), model="within", effect="individual", data=data)
coeftest(plm.model, vcov.=vcovHC(plm.model, type="HC1))
我错过了设置一些选项吗?
plm
模型是否使用其他类型的估计,如果是,如何? 我可以在某种程度上使用
plm
与St13ѭ中的Stata具有相同的标准误差     
已邀请:
默认情况下,
plm
包不会像Stata那样使用与面板数据完全相同的小样本校正。但是在
plm
的1.5版本中(在CRAN上),您可以选择模拟Stata正在做的事情。
plm.model<-plm(Y ~ V1 , index=C("ENTITY","YEAR"), model="within", 
    effect="individual", data=data)
coeftest(plm.model, vcov.=function(x) vcovHC(x, type="sss"))
这应该产生与Stata相同的群组标准错误(但是如评论中所述,没有可重复的示例以及您期望得到的结果更难回答问题)。 有关此问题的更多讨论以及R和Stata强大SE的一些基准测试,请参阅R中的Fama-MacBeth和Cluster-Robust(按固态和时间)标准误差。 也可以看看: 使用plm(具有固定效果)的R中的聚类标准错误     
您的Stata代码可能与您使用plm的代码有所不同吗? 具有“个体”效果的
plm
“内部”选项意味着形式的模型:
yit = a + Xit*B + eit + ci
plm
的作用是贬低系数,使ci从等式中下降。
yit_bar = Xit_bar*B + eit_bar
这样“bar”后缀意味着每个变量的平均值减去。平均值是随时间计算的,这就是为什么效果是针对个人的。你也可以有一个固定的时间效果,这对所有人来说都是常见的,在这种情况下效果也会随着时间而变化(尽管在这种情况下这是无关紧要的)。 我不确定“xi”命令在STATA中做了什么,但我认为它扩展了一个交互对吗?然后在我看来,你正试图使用​​每个ENTITY的虚拟变量,正如@richardh强调的那样。 要使您的Stata和plm代码匹配,您必须使用相同的型号。 您有两种选择:(1)您在stata中设置数据并使用带有fe修饰符的xtreg选项或(2)使用带有池选项的plm和每个ENTITY使用一个虚拟。 匹配Stata到R:
xtset entity year
xtreg y v1, fe robust 
匹配plm到Stata:
plm(Y ~ V1 + as.factor(ENTITY) , index=C("ENTITY","YEAR"), model="pooling", effect="individual", data=data)
然后使用
vcovHC
和其中一个修饰符。请务必查看本文,其中详细介绍了“HC”选项背后的所有机制以及它们影响方差协方差矩阵的方式。 希望这可以帮助。     

要回复问题请先登录注册