如何为OLS提供自定义方差以估计系数置信区间?

时间:2015-01-10 13:51:15

标签: python statsmodels

我正在使用statsmodels来分析一些数据。我使用OLS确定了六个系数,并且我得到了我认为由库估算方差为ssr / df_resid的计算的置信区间。
假设我现在想要为OLS提供我估计的自定义方差,并使其用于计算系数置信区间。我该怎么做?

1 个答案:

答案 0 :(得分:0)

在statsmodels中更改Results实例中的属性有点棘手,因为许多属性是懒惰计算然后缓存的。使用后门或直接分配属性可能会导致结果不一致和不正确。但是,由于它是Python,因此可以更改内部存储的cov_params_default

基于用户给出的协方差矩阵获得参数推断的一种可能性是使用t_test cov_p参数来提供cov_params。

这样的东西
tt = results.t_test(np.eye(len(results.params)), cov_p = myscale * results.normalized_cov_params)

然后tt包含与摘要参数表相同的信息,请参阅dir(tt)print(tt)

但是,自从修复了规模以来,误差方差估计并不是一个不常见的用例,现在直接支持它,在当前的statsmodels master中将会以0.7的形式发布。目前仅支持线性回归模型OLS,WLS,GLS。

https://github.com/statsmodels/statsmodels/pull/2137

例如对于WLS:

res = WLS(ydata, xdata, weights=weights).fit(cov_type='fixed scale', cov_kwds={'scale':2})