当使用Prais-Winsten估计时,为什么我在SAS和Stata中获得不同的回归输出?

时间:2015-11-11 20:42:09

标签: sas time-series regression stata

我有一个严重的序列相关问题的时间序列数据集,所以我采用了具有迭代估计值的Prais-Winsten估计来解决这个问题。我用以下命令在Stata中做了回归:

prais depvar indepvar indepvar2, vce(robust) rhotype(regress)

我的同事想要在SAS中重现我的结果,所以她使用了以下内容:

proc autoreg data=DATA;
model depvar = indepvar indepvar2/nlag=1 iter itprint method=YW;
run;

对于我们运行的不同规格,其中一些大致匹配,而另一些则不匹配。另外我注意到,对于每个回归规范,Stata比SAS有更多的迭代。我想知道我(或我的同事)的代码是否有问题。

更新

受Joe的评论启发,我修改了我的SAS代码。

/*Iterated Estimation*/
proc autoreg data=DATA;
model depvar = indepvar indepvar2/nlag=1 itprint method=ITYW;
run;

/*Twostep Estimation*/
proc autoreg data=DATA;
model depvar = indepvar indepvar2/nlag=1 itprint method=YW;
run;

1 个答案:

答案 0 :(得分:3)

我有一些建议。请注意,我不是真正的统计学家,也不熟悉这里的具体估算器,所以这只是对文档的快速阅读。

首先,最可能的问题是SAS看起来像是使用OLS方差估计方法。也就是说,在您的Stata代码中,您有vce(robust),这与我使用的SAS相比,相当于vce(ols)。请参阅this page in the docs,其中介绍了SAS如何使用Y-W自动回归方法,与解释Stata如何做的this doc page进行比较。

其次,您可能不应指定method=YW。 SAS区分简单的Y-W估计("两步"方法)和迭代的Y-W估计。 method=ITYW就是你想要的。你指定了iter,所以很可能你无论如何都要得到这个,因为SAS往往对这些事情很聪明,但验证很好。

我建议实际上关闭迭代开始 - 同时执行两步法(Stata选项twostep,SAS删除iter请求并指定method=YW或不指定方法规范) 。看看他们在那里的表现如何。一旦你可以得到那些匹配,然后继续迭代;可能的SAS有一个不同于Stata的截止值,可能不会超过它。

我还建议首先尝试使用一个独立的因变量对,因为当你添加第二个自变量时,两个程序可能会以不同的方式处理事物。总是从简单开始,然后增加复杂性。