模型预测的置信区间

7

我将跟随一个statsmodels教程

使用OLS模型进行拟合

formula = 'S ~ C(E) + C(M) + X' 
lm = ols(formula, salary_table).fit()
print lm.summary()

预测值通过以下方式提供:

lm.predict({'X' : [12], 'M' : [1], 'E' : [2]})

结果以单个值数组的形式返回。

在statsmodels中是否有一种方法可以返回预测值的置信区间(预测区间)?

谢谢。


你有没有在谷歌上搜索“python statsmodels confidence”? - Floris
4
是的,我看过了。在模型结果摘要中,它返回了拟合值的CI。我正在寻找预测值的CI。本质上,我正在寻找Y_hat的95% CI。 - John
2个回答

11

我们一直希望使这更易于访问。您应该能够使用

from statsmodels.sandbox.regression.predstd import wls_prediction_std
prstd, iv_l, iv_u = wls_prediction_std(results)

如果您遇到任何问题,请在GitHub上提交问题。


谢谢@jseabold。我知道它一定有特性的地方。 - John
1
有没有办法为模型预测的新数据也获得预测区间? 这里引用的方法仅返回训练数据的预测区间。 - Marco Mene
1
@MarcoMene,wls_prediction_std()函数接受第二个参数exog,可以是新数据。 - Mattijn

0
此外,您可以尝试使用 get_prediction 方法。
values_to_predict = pd.DataFrame({'X' : [12], 'M' : [1], 'E' : [2]})
predictions = result.get_prediction(values_to_predict)
predictions.summary_frame(alpha=0.05)

我在这里找到了 summary_frame() 方法(链接),而 get_prediction() 方法(链接)则可以在这里找到。您可以通过修改“alpha”参数来更改置信区间和预测区间的显著性水平。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接