如何在 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%。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注