置信区间图

时间:2018-12-17 17:59:16

标签: python matplotlib plot distribution

我有两个分布要比较95%的置信区间:

from scipy.stats import lognorm
from scipy.stats import uniform
import numpy as np
prior_fb = uniform(loc=0, scale=0.1)
post_fb = lognorm(s=np.log(1.15), scale=0.0076)

我可以获得95%的置信区间以及两个分布的均值:

prior_mean = prior_fb.mean()
prior_interval = prior_fb.interval(0.95)
post_mean = post_fb.mean()
post_interval = post_fb.interval(0.95)

我尝试生成随机变量,并使用Origin的“区间图”功能绘制变量,但我认为Origin假设数据为正态分布,因此“区间图”实际上并不代表95%的区间:

Interval plot using random variates

prior_fb.interval(0.95)所给,先验的间隔应从0.0025到0.0975。

如何使用matplotlib绘制和比较前后的间隔(和均值)?

1 个答案:

答案 0 :(得分:1)

我将使用matplotlib中的箱形图,您可以传递平均值而不是中位数,并且可以传递置信区间:

from matplotlib import pyplot
fig, ax = pyplot.subplots()
ax.boxplot([prior_fb.rvs(size=1000),post_fb.rvs(size=1000)],conf_intervals=[prior_interval,post_interval],usermedians=[prior_mean,post_mean],labels=['Prior','Post'])

enter image description here