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