Statsmodels根据异方差一致的标准误差绘制平均置信区间

时间:2014-01-28 04:51:04

标签: python statistics statsmodels

这个问题与confidence and prediction intervals with StatsModels类似,但有一个额外的细微差别:

我的数据是异方差的,我想使用statsmodels提供的任何一个异方差一致的标准误差(HC0_se,HC1_se等)来绘制均值上的置信区间。对于每个拟合值,我找不到任何容易访问此信息的方法(尽管获取每个系数的间隔非常容易)。它也似乎不包含在stats.outliers的结果汇总表中,其方式与标准平均置信区间数据相同。

两个问题:

  1. 有谁知道我怎么能这样做?
  2. 线性回归结果对象中也可以使用异方差一致协方差矩阵?为什么要提供?
  3. 非常感谢

2 个答案:

答案 0 :(得分:3)

我不相信有一种方法可以指定您想用于计算预测标准误差的协方差矩阵。请注意,预测代码仍然在"沙盒中#34; 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

答案 1 :(得分:2)

强大的标准误差或协方差尚未完全集成到模型中。它们目前主要是附加组件,以便在估算模型后得到它们。

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

对于预测标准错误:

我认为当cov_params是一个强大的三明治估算器时,计算是相同的,但我还没有证实对抗Stata。看到我的答案的最后一部分 Mathematical background of statsmodels wls_prediction_std

因此在statsmodels 0.5中,不可能直接获得具有鲁棒协方差的预测误差,您需要复制函数以使用所需的cov_params。

为什么我们使用强大的协方差

如果存在异方差性或观察的相关性,则OLS具有一致或无偏的参数估计,但参数估计的标准协方差矩阵是“错误的”。因此,我们需要得到一个对异方差性,相关性或两者兼容的协方差矩阵。

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

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

同样适用于其他模型,例如广义估计方程(GEE)中泊松或Logit模型中的簇鲁棒标准误差。