Python 线性回归(OLS):未使用Statsmodel summary_Frame()准确计算置信区间

Python 线性回归(OLS):未使用Statsmodel summary_Frame()准确计算置信区间,python,linear-regression,statsmodels,confidence-interval,standard-error,Python,Linear Regression,Statsmodels,Confidence Interval,Standard Error,不正确的置信区间 我想用python中的OLS模型计算预测值的置信区间。我在statmodel中找到了一个函数,它可以帮助您创建每个预测值的数据框、预测值的se、CI的上限值和下限值,然后使用get_prediction和summary_frame 不幸的是,我的上CI和下CI与结果不匹配。请找到我的代码和结果的附加屏幕截图 Ex的第1行:95%置信区间的预测值-11.788462,SE-0.580693 但截图中的结果与这些数字不符。我不确定我是否做错了什么。非常感谢您的帮助。statsmod

不正确的置信区间

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

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

Ex的第1行:95%置信区间的预测值-11.788462,SE-0.580693


但截图中的结果与这些数字不符。我不确定我是否做错了什么。非常感谢您的帮助。

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
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