线性回归(OLS):使用Statsmodel summary_Frame()

时间:2019-11-19 17:49:12

标签: python linear-regression statsmodels confidence-interval standard-error

不正确的置信区间

我想从python中的OLS模型计算我的预测值的置信区间。我在statmodel中找到了一个函数,该函数可帮助您使用get_prediction()然后summary_frame()创建每个预测值,预测值的se,CI的上下限的数据框。

不幸的是,我的上下CI不匹配结果。请为我的代码和结果Screenshot查找附加的屏幕截图。

第1行,例如:Forecasted Value - 11.788462, SE - 0.580693, for 95% CI

Lower Bound should be = 11.788462 - (1.96 * 0.580693) = 10.65030372

Upper Bound should be = 11.788462 + (1.96 * 0.580693) = 12.92662028

但是屏幕截图中的结果与这些数字不匹配。我不确定自己做错了什么。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

statsmodels默认使用t分布来推断OLS等线性回归模型。

由于样本量非常小且自由度较低,因此t分布的临界值与正态分布的临界值在可观察到的程度上有所不同。

以下内容将df = 5的t分布的临界值替换为1.96的临界值。这些值与问题所附屏幕截图中的statsmodels结果匹配。

from scipy import stats

11.788462 + stats.t.ppf(0.025, 5) * 0.580693
Out[12]: 10.295743121550677

11.788462 + stats.t.isf(0.025, 5) * 0.580693
Out[13]: 13.281180878449325