我正在尝试学习R后使用Stata,我必须说,我喜欢它。但现在我有麻烦了。我即将对Panel数据进行多次回归,所以我使用的是plm包。
现在,我希望R中的plm得到与使用lm函数时相同的结果,而当我执行异方差性、鲁棒性和实体固定回归时,将得到相同的结果。
假设我有一个包含变量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的标准错误是否与, robust的Stata中的标准错误相同?发布于 2014-08-14 12:54:32
默认情况下,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健壮see的一些基准的更多讨论,请参见Fama-MacBeth和集群-稳健性(按强度和时间)R中的标准误差。
另请参阅:
发布于 2012-12-11 15:29:05
您的Stata代码是否可能与您使用plm时所做的不同?
plm的“在”选项中包含“个人”效果,这意味着表单的模型:
yit = a + Xit*B + eit + ciplm所做的是降低系数,使ci从方程中下降。
yit_bar = Xit_bar*B + eit_bar这样,"bar“后缀意味着每个变量的平均值都会被减去。平均值是随着时间的推移而计算出来的,这就是为什么效应是针对个人的。你也可以有一个固定的时间效应,这对所有个人来说都是共同的,在这种情况下,这种影响也是通过时间产生的(在这种情况下,这是不相关的)。
我不知道“十一”命令在斯塔塔有什么作用,但我认为它扩大了一种互动,对吗?然后,在我看来,您试图在每个实体中使用一个虚拟变量,正如@richardh所突出显示的那样。
要使Stata和plm代码匹配,您必须使用相同的模型。
您有两个选项:(1)在stata中设置数据,并在fe修饰符中使用xtreg选项;或(2)在池选项和每个实体中使用一个dummy选项时使用plm。
匹配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“选项背后的所有机制以及它们影响方差协方差矩阵的方式。
希望这能有所帮助。
https://stackoverflow.com/questions/4433490
复制相似问题