【问题标题】:Confidence intervals for model prediction模型预测的置信区间
【发布时间】:2013-04-21 07:27:54
【问题描述】:

我正在关注statsmodels tutorial

一个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”吗?
  • 是的,我看过了。它返回模型结果摘要中拟合值的 CI。我正在寻找预测值的 CI。本质上,我正在寻找 Y_hat 的 95% CI。

标签: python statsmodels


【解决方案1】:

我们一直想让这更容易实现。你应该可以使用

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

如果您有任何问题,请在 github 上提出问题。

【讨论】:

  • 谢谢@jseabold。我知道它必须在某个地方出现。
  • 有没有办法获得模型预测的新数据的预测区间?此处引用的方法仅返回训练数据的预测区间。
  • @MarcoMene wls_prediction_std() 接受第二个参数,exog,它可以是新数据。
【解决方案2】:

此外,您可以尝试使用 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() 方法被埋在here 中,你可以找到get_prediction() 方法here。您可以通过修改“alpha”参数来更改置信区间和预测区间的显着性水平。

【讨论】:

    猜你喜欢
    • 2015-11-18
    • 2021-01-22
    • 2021-01-22
    • 2013-07-07
    • 2018-07-29
    • 2018-05-05
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    相关资源
    最近更新 更多