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

Why do I get different regression outputs in SAS and in Stata when using Prais-Winsten estimation?

我的时间序列数据集存在严重的序列相关问题,因此我采用了具有迭代估计的 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;

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

首先,最有可能的问题是 SAS 似乎使用了 OLS 方差估计方法。也就是说,在您的 Stata 代码中,您有 vce(robust),这与我读到的 SAS 所使用的相反,相当于 vce(ols)。请参阅 this page in the docs which explains how SAS does the Y-W method of autoregression, compared to this doc page,其中解释了 Stata 是如何做到的。

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

我建议实际上关闭迭代开始 - 两者都执行两步法(Stata 选项 twostep,SAS 通过删除 iter 请求并指定 method=YW 或没有方法规格)。看看他们在那里匹配得有多好。一旦你能让它们匹配,然后继续迭代; SAS 的截止点可能与 Stata 不同,并且很可能不会迭代过去。

我还建议首先仅使用一对自变量和因变量来尝试此操作,因为当您添加第二个自变量时,这两个程序可能会以不同方式处理事情。始终从简单开始,然后增加复杂性。