如何在 python 中计算置信区间
均值的置信区间是可能包含具有一定置信水平的总体均值的值范围。
计算方法如下:
置信区间 = x +/- t*(s/√n)
金子:
- x :样本均值
- t:对应置信度的t值
- s:样本标准差
- n:样本量
本教程介绍如何在 Python 中计算置信区间。
使用 t 分布的置信区间
如果我们使用小样本 (n < 30),我们可以使用 scipy.stats 库中的t.interval() 函数来计算总体平均值的置信区间。
以下示例显示如何使用 15 种植物的样本计算特定植物物种的真实平均种群高度(以英寸为单位)的置信区间:
import numpy as np import scipy.stats as st #define sample data data = [12, 12, 13, 13, 15, 16, 17, 22, 23, 25, 26, 27, 28, 28, 29] #create 95% confidence interval for population mean weight st.t.interval(alpha=0.95, df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) (16.758, 24.042)
真实平均总体规模的 95% 置信区间为(16.758, 24.042) 。
您会注意到置信水平越高,置信区间越宽。例如,以下是如何计算完全相同数据的 99% CI:
#create 99% confidence interval for same sample st.t.interval(alpha= 0.99 , df=len(data)-1, loc=np.mean(data), scale=st.sem(data)) (15.348, 25.455)
真实平均总体规模的 99% 置信区间为(15.348, 25.455) 。请注意,此区间比之前的 95% 置信区间更宽。
使用正态分布的置信区间
如果我们使用较大的样本(n≥30),我们可以假设样本均值的抽样分布是正态分布的(得益于中心极限定理),并且可以使用范数函数。 Interval()来自 scipy .stats 库。
以下示例显示如何使用 50 种植物的样本计算特定植物物种的真实平均种群高度(以英寸为单位)的置信区间:
import numpy as np import scipy.stats as st #define sample data np.random.seed(0) data = np.random.randint(10, 30, 50) #create 95% confidence interval for population mean weight st.norm.interval(alpha=0.95, loc=np.mean(data), scale=st.sem(data)) (17.40, 21.08)
真实平均总体规模的 95% 置信区间为(17.40, 21.08) 。
与 t 分布一样,较高的置信水平会导致更宽的置信区间。例如,以下是如何计算完全相同数据的 99% CI:
#create 99% confidence interval for same sample st.norm.interval(alpha= 0.99 , loc=np.mean(data), scale=st.sem(data)) (16.82, 21.66)
真实平均总体规模的 95% 置信区间为(17.82, 21.66) 。
如何解释置信区间
假设植物物种真实平均高度的 95% 置信区间为:
95% 置信区间 = (16.758, 24.042)
解释该置信区间的方法如下:
置信区间 [16.758, 24.042] 包含种群的真实平均植物高度的可能性为 95%。
同一件事的另一种说法是,真实总体平均值只有 5% 的可能性位于 95% 置信区间之外。也就是说,实际平均株高低于 16.758 英寸或高于 24.042 英寸的可能性只有 5%。