一、目的:本文介绍用 python 做怀特异方差一致稳健标准误估计的方法。
二、参考文献
可参考这位前辈的文章:【Python计量】异方差性的处理_回归模型存在异方差应该怎么处理-CSDN博客
三、数据
数据如下,来自潘省初、周凌瑶教授的《计量经济学(第7版)》第120页的实例中的数据。
| Country | C | Y |
| 1 | 6561 | 3393.1 |
| 2 | 1301 | 965.7 |
| 3 | 14938 | 32624.6 |
| 4 | 2904 | 4334.5 |
| 5 | 446 | 525.4 |
| 6 | 3801 | 9563.1 |
| 7 | 13926 | 37056.3 |
| 8 | 1877 | 3541.3 |
| 9 | 13761 | 36183.5 |
| 10 | 861 | 1096.8 |
| 11 | 1568 | 3108.9 |
| 12 | 8025 | 16695 |
| 13 | 12813 | 41133.5 |
| 14 | 3811 | 13293.5 |
| 15 | 285 | 382.8 |
| 16 | 324 | 323.6 |
| 17 | 4762 | 6944.4 |
| 18 | 2485 | 3668.8 |
| 19 | 1431 | 2910.4 |
| 20 | 3610 | 2049.8 |
| 21 | 4096 | 2028.3 |
| 22 | 986 | 1417.8 |
| 23 | 9727 | 25143.1 |
| 24 | 1219 | 1332.9 |
| 25 | 11861 | 21192.1 |
| 26 | 11594 | 29188.1 |
| 27 | 528 | 732.2 |
| 28 | 622 | 970.1 |
| 29 | 19402 | 36597.9 |
| 30 | 439 | 514.1 |
| 31 | 727 | 2541.5 |
四、模型与主要代码
这里主要展示了关键代码部分,其它代码略去。
在 smf 中,gls 可以替换为 ols,但由于 ols 是 gls 的特例,或者说 gls 是 ols 的广义化,个人习惯上用 gls。
代码中的 cov_type='HC0',对应的就是怀特1980异方差稳健标准误方法。
import statsmodels.formula.api as smf
model=smf.gls("C~Y",data=df,sigma=None)
result=model.fit(cov_type='HC0')
print(result.summary())
得到的结果如下:

你可能会问,和潘、周两位教授的书上的结果不一样啊?
这里需要特别解释一下,书里用的是 Eviews 里的怀特异方差稳健标准误的结果,其实 Eviews 那里不是 "怀特1980异方差稳健标准误方法",而是 "迈克金农-怀特1985异方差稳健标准误方法".当我们将上述代码中的 HC0 改为 HC1,就是"迈克金农-怀特1985异方差稳健标准误方法"了,得到的结果如下:

本文介绍了如何使用Python的statsmodels库进行怀特异方差一致稳健标准误估计,通过gls函数实现,并比较了不同类型的稳健标准误方法(如HC0和HC1)。文中还提到了与潘省初和周凌瑶教授著作中的异方差处理方法的差异。

5232

被折叠的 条评论
为什么被折叠?



