温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python - Plotting confidence interval around predicted line plot
confidence-interval plot python r statistics

python - 围绕预测线图绘制置信区间

发布于 2020-10-13 16:11:43

我想围绕线图绘制置信区间,类似于:https : //scikit-learn.org/0.17/_images/plot_gp_regression_001.png

我正在拟合一个高斯过程,并且在预测值时,每个过程都会返回一个平均值和一个std(标准偏差)。使用此方法,我应该能够绘制出不同范围的置信区间。就我而言,我正在尝试将范围设置为10%,20%... ... 90%。

目前我正在做这样的事情

y_pred, std = reg.predict(x, return_std=True)

std_z = 1.96 # from z-table for 95%
confidence_interval = std * std_z

plt.plot(x, y_pred)    
plt.fill_between(x, y_pred - confidence_interval, y_pred + confidence_interval)

这样可行。根据z表(http://www.z-table.com/uploads/2/1/7/9/21795380/8573955.png?759),您可以看到95%的z值为1.96 。但是,以25%和75%为例。这些参数的z值分别为-和+ 0.67,在绘制时仅在置信区间内重叠。在我看来,这在直觉上是不正确的。我希望可以看到,对于较低的置信度范围,缩小的频段;对于增加的置信度范围,则希望扩展的频段,对吗?

任何帮助,将不胜感激。

查看更多

提问者
intl
被浏览
22
Limey 2020-05-30 01:16

错误。与置信区间相关的百分比(在您的示例中为95%,75%,25%)是覆盖率。它们是您估计的数量的真实值(在这种情况下为预测值)位于CI内的机会。鉴于您正在谈论的CI是中心置信区间(即,它们位于预测值),这是为了获得较高的置信度需要更长的时间间隔。这正是您所看到的。如果较窄的置信区间具有比较宽的置信区间更高的覆盖概率,则这意味着存在一个以某种方式具有负覆盖概率的区域。概率不能为负,所以这是不可能的。