Contents

Plot 95% Confidence Interval as Errobar in Python

The 95% confidence interval represents the range of values which are likely to contain true population parameter such as population mean with a 95% confidence level.

Typically, the 95% confidence interval for a large sample is calculated as:

https://latex.codecogs.com/svg.image?\LARGE&space;&space;CI=\bar&space;x\pm&space;1.96\left(\frac{\sigma}{\sqrt{n}}\right)

Where, x̄ is a sample mean, σ is the population standard deviation, n is the sample size, and 1.96 is a critical value for 95% confidence.

The part of the equation in bracket is also called as standard error of the mean.

Note
The formula for a 95% confidence interval may change based on the sample size and the hypothesis. You should use the appropriate formula as per your hypothesis testing.

You can use this formula to calculate the 95% confidence interval for the data and plot them as errorbar using the matplotlib.

The following example explains in detail how to plot a 95% confidence interval as errorbar in Python.

Create a sample dataset

Create a random pandas DataFrame,

# import package
import pandas as pd

# Create the contingency table
df = pd.DataFrame({'group': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'] ,
                   'value': [10, 12, 13, 15, 16, 20, 5, 6, 5] })
				  
# view df
df.head(5)				  

  group  value
0     A     10
1     A     12
2     A     13
3     B     15
4     B     16

Calculate 95% confidence interval

Calculate the 95% confidence interval for each group in the DataFrame.

# import package
import pandas as pd

# calculate mean and standard error
group_mean = df.groupby('group')['value'].mean()
group_sem = df.groupby('group')['value'].sem()

# calculate 95% confidence interval range
ci = 1.96 * group_sem

print(ci)

# output
group
A    1.728558
B    2.993949
C    0.653333

We will use calculated 95% confidence intervals for plotting errorbar on a line and bar chart.

Plot 95% confidence interval

Now, you can use the errorbar function from matplotlib to plot the 95% confidence intervals as errorbar for each group.

# import package
import matplotlib.pyplot as plt

plt.errorbar(x=group_mean.index, y=group_mean, yerr=ci, capsize=3, 
	fmt='b--o')
plt.xlabel('groups')
plt.ylabel('group mean')

/images/posts/51_95_ci.png
Plot 95% confidence interval as errorbar

In addition to line plot, you can also create bar chart and add 95% confidence interval as errorbar.

# import package
import matplotlib.pyplot as plt

plt.bar(x=group_mean.index, height=group_mean, yerr=ci, capsize=3)
plt.xlabel('groups')
plt.ylabel('group mean')

/images/posts/51_95_ci_bar.png
Bar chart with 95% confidence interval as errorbar