不正确的置信区间

我想从python中的OLS模型计算我的预测值的置信区间。我在statmodel中找到了一个函数,该函数可以帮助您使用get_prediction()然后summary_frame()创建每个预测值,预测值本身,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


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

最佳答案

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

关于python - 线性回归(OLS):使用Statsmodel summary_Frame()不能正确计算置信区间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58940033/

10-12 13:29