0

I have two distributions of which I'd like to compare the 95% confidence interval of:

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)

I can get the 95% confidence intervals, and mean of both distributions:

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

I tried generating random variates and plotting those using the "interval plot" function of Origin, but I think Origin assumes a normal distribution for the data, so the "interval plot" does not really represent the 95% interval:

Interval plot using random variates

The interval for the prior should go from 0.0025 to 0.0975, as given by prior_fb.interval(0.95).

How can I plot and compare the intervals (and the mean) for the prior and the posterior using matplotlib?

1 Answer 1

1

I would use box plot from matplotlib, you can pass mean values instead of median and you can pass confidence interval:

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.