1

这个问题类似于StatsModels 的置信区间和预测区间,但有一个额外的细微差别:

我的数据是异方差的,我想使用 statsmodels 提供的任何一种异方差一致标准误差(HC0_se、HC1_se 等)绘制均值的置信区间。对于每个拟合值,我无法轻松访问此信息(尽管很容易获得每个系数的间隔)。它似乎也不像标准平均置信区间数据那样包含在 stats.outliers 的结果汇总表中。

两个问题:

  1. 有谁知道我该怎么做?
  2. 通常使用线性回归结果对象中也可用的异方差一致协方差矩阵是什么?为什么可以使用它?

非常感谢

4

2 回答 2

3

我不相信有一种方法可以指定要用于计算预测标准误差的协方差矩阵。请注意,预测代码仍在 statsmodels 存储库的“沙盒”文件夹中。我相信 Github 拉取请求会受到欢迎:)

无论如何,这应该很简单。这是您链接到的预测功能的底层代码的链接。本质上,您只需要替换要使用的协方差矩阵而不是covb变量。

然后,您可以使用您在其他 SO 帖子中看到的相同 matplotlib 花絮。

https://github.com/statsmodels/statsmodels/blob/master/statsmodels/sandbox/regression/predstd.py#L27

predvar = res.mse_resid/weights + (exog * np.dot(covb, exog.T).T).sum(1)
predstd = np.sqrt(predvar)
tppf = stats.t.isf(alpha/2., res.df_resid)
interval_u = predicted + tppf * predstd
interval_l = predicted - tppf * predstd
return predstd, interval_l, interval_u
于 2014-01-28T14:20:42.270 回答
2

稳健的标准误差或协方差尚未完全集成到模型中。它们目前主要是在模型估计后获取它们的附加组件。

我们将能够在 statsmodels 的下一版本中将默认协方差更改为任何可用的稳健协方差估计器,并且已经在 OLS 的当前主版本中。然后所有其他结果,t_test、wald_test 等,将使用已定义为默认值的稳健或非稳健协方差。当前版本:http ://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLSResults.get_robustcov_results.html

对于预测标准误:

我认为当cov_params是一个稳健的三明治估计器时,计算是相同的,但我还没有针对 Stata 验证这一点。请参阅我在statsmodels wls_prediction_std的数学背景中的答案的最后一部分

因此,在 statsmodels 0.5 中,无法直接获得具有稳健协方差的预测误差,您需要复制该函数以使用所需的 cov_params。

为什么我们使用稳健的协方差

如果观测值存在异方差或相关性,则 OLS 具有一致或无偏的参数估计,但参数估计的标准协方差矩阵是“错误的”。所以我们需要得到一个对异方差性、相关性或两者都具有鲁棒性的协方差矩阵。

许多现代计量经济学教科书建议始终使用稳健的协方差估计器,当我们不确定异方差性或观察之间的相关性的正确规范时。这在经济学中几乎总是如此。

最简单的情况只是异方差http://en.wikipedia.org/wiki/Heteroscedasticity-consistent_standard_errors但在时间序列中,我们可能有模型中未包含的自相关,在重复测量或面板数据中,我们经常在集群内或面板。在这些情况下,稳健协方差为我们提供了一致的标准误差。

这同样适用于其他模型,例如 Poisson 中的聚类稳健标准误差或广义估计方程 (GEE) 中的 Logit 模型。

于 2014-01-28T14:31:08.200 回答