置信区间是统计学中的一个重要工具,用以使用样本参数()来估计总体均值在某置信水平下的范围。通俗一点讲,如果置信度为95%(等价于显著水平a=0.05),置信区间为[a,b],这就意味着总体均值落入该区间的概率为95%。
一般情况下当我们抽样的数量大于等于30时,可认为样本均值服从正态分布,以此我们通过查标准正态分布表,或者显著水平a下的z值,然后即可获得置信区间。如下
如果样本数量小于30,则查t分布表,确定置信区间。
比如工厂要确定95%置信水平下的产品成份含量的置信区间,但手里只有20个样本数据,如何来估计总体的成分含量呢?我们可以对这20个样本数据进行30轮重复采样,每次随机采样10件产品,记录其均值。这样会得到30个样本均值。根据中心极限定理,这30个样本服从正态分布,于是我们就可以用这30个样本均值的均值及标准差,来估计总体的成分含量区间了。
示例代码如下:
#初始化样本
X=np.array([91,94,91,94,97,83,91,95,94,96,97,95,90,91,95,91,88,85,89,93])
#样本排序,为了适应下面的随机抽样函数
X=sorted(X)
#使用random模块的随机抽样函数sample,进行抽样。该函数有两个参数,第一个是样本集合,第二个是抽取数量
import random
#进行30轮随机抽样同时计算均值,形成新的正态分布的样本
n=30
X_new=[np.mean(random.sample(X, 10)) for i in range(n)]
X_new
#计算样本均值和标准差
mu,std=np.mean(X_new),np.std(X_new)
mu,std
#求置信区间
[mu-std/np.sqrt(n)*1.96,mu+std/np.sqrt(n)*1.96]
最终估计的总体均值置信区间为[91.69440711928762, 92.17892621404569]。