为计算两个正态总体均值差μ1−μ2\mu_1-\mu_2μ1−μ2在指定置信度下的双侧置信区间,涉及样本均值x‾\overline{x}x,y‾\overline{y}y,总体方差σ12\sigma_1^2σ12,σ22\sigma_2^2σ22(或样本方差s22s_2^2s22,s22s_2^2s22),样本容量n1n_1n1,n2n_2n2和置信水平1−α1-\alpha1−α。算法为
计算样本均值差x‾−y‾\overline{x}-\overline{y}x−y;计算枢轴量服从的分布以置信度1−α1-\alpha1−α为概率的双侧分位点aaa和bbb;计算增量因子ddd。若已知总体方差为σ12n1+σ22n2\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}n1σ12+n2σ22,否则为sw1n1+1n2s_w\sqrt{\frac{1}{n_1}+\frac{1}{n_2}}swn11+n21,其中sw=(n1−1)s12+(n2−1)s22n1+n2−2s_w=\sqrt{\frac{(n_1-1)s_1^2+(n_2-1)s_2^2}{n_1+n_2-2}}sw=n1+n2−2(n1−1)s12+(n2−1)s22;计算置信下限(x‾−y‾)−a⋅d(\overline{x}-\overline{y})-a\cdot d(x−y)−a⋅d和置信上限(x‾−y‾)+a⋅d(\overline{x}-\overline{y})+a\cdot d(x−y)+a⋅d。
将此算法与博文《单个正态总体均值的双侧区间估计》中计算单个正态总体均值μ\muμ的双侧置信区间算法相比,可知两者的不同点就在于单总体的样本均值x‾\overline{x}x变成双总体样本均值的差x‾−y‾\overline{x}-\overline{y}x−y,置信区间增量因子ddd由σ2n\sqrt{\frac{\sigma^2}{n}}nσ2,或s2n\sqrt{\frac{s^2}{n}}ns2变成σ12n1+σ22n2\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}n1σ12+n2σ22(已知总体方差),或sw1n1+1n2s_w\sqrt{\frac{1}{n_1}+\frac{1}{n_2}}swn11+n21(未知总体方差)。其他都一致。所以,我们可以通过调用博文《单个正态总体均值的双侧区间估计》中定义的muBounds函数,传递合适的参数来计算双正态总体均值差的置信区间。
例1为比较I,II两种型号步枪子弹的枪口速度,随机地取I型子弹10发,得到枪口速度的平均值x‾=500m/s\overline{x}=500m/sx=500m/s,标准差s1=1.10m/ss_1=1.10m/ss1=1.10m/s。随机地取II型子弹20发,得到枪口速度的平均值为y‾=496m/s\overline{y}=496m/sy=496m/s,标准差s2=1.20m/ss_2=1.20m/ss2=1.20m/s。假设两个总体都服从正态分布,且有生产过程可认为方差相等。计算两个总体的均值差μ1−μ2\mu_1-\mu_2μ1−μ2的置信水平为0.95的置信区间。
解:下列代码完成本例计算。
import numpy as np#导入numpyxmean=500 #样本均值1ymean=496 #样本均值2mean=xmean-ymean#样本均值差s1=1.10**2 #样本方差1s2=1.20**2 #样本方差2n1=10 #样本容量1n2=20 #样本容量2sw=np.sqrt(((n1-1)*s1+(n2-1)*s2)/(n1+n2-2)) #swd=sw*np.sqrt(1/n1+1/n2) #置信区间增量因子confidence=0.95 #置信度a, b=muBounds(mean, d, confidence, n1+n2-2) #计算置信区间print('(%.4f, %.4f)'%(a, b))
由于本例计算的是未知两个总体方差(虽未知其值,但知相等)前提下,均值差的置信区间,故第12行调用muBounds函数时,传递给参数df的值为ttt分布的自由度n1+n2−2n_1+n_2-2n1+n2−2。运行程序,输出
(3.0727, 4.9273)
由于置信下限3.07>03.07>03.07>0,可认为以0.95的置信水平,μ1>μ2\mu_1>\mu_2μ1>μ2,即I类子弹的枪口速度均值显著大于II类子弹的枪口速度均值。
例2为提高某一化学生产过程的得率,试图采用一种新的催化剂。为慎重起见,在实验工厂先进行试验。设采用原来的催化剂进行了n1=8n_1=8n1=8次试验,得到得率的平均值x‾=91.73\overline{x}=91.73x=91.73,样本方差s12=3.89s_1^2=3.89s12=3.89;采用新的催化剂进行了n2=8n_2=8n2=8次试验,得到得率平均值y‾=93.75\overline{y}=93.75y=93.75,样本方差s22=4.02s_2^2=4.02s22=4.02。假设两个总体都可认为服从正态分布,且方差相等,两个样本独立。试计算两总体均值差μ1−μ2\mu_1-\mu_2μ1−μ2的置信水平为0.95的置信区间。
解:下列代码完成本例计算。
import numpy as np#导入numpyxmean=91.73#样本均值1ymean=93.75#样本均值2mean=xmean-ymean#样本均值差s1=3.89#样本方差1s2=4.02#样本方差2n1=8#样本容量1n2=8#样本容量2sw=np.sqrt(((n1-1)*s1+(n2-1)*s2)/(n1+n2-2))#swd=sw*np.sqrt(1/n1+1/n2)#置信区间增量因子confidence=0.95#置信水平a, b=muBounds(mean, d, confidence, n1+n2-2)#计算置信区间print('(%.4f, %.4f)'%(a, b))
运行程序,输出
(-4.1527, 0.1127)
由于0∈(−4.1527,0.1127)0\in(-4.1527, 0.1127)0∈(−4.1527,0.1127),可认为新旧两种催化剂对化学过程的得率均值无显著差别。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
返回《导引》
如果觉得《概率统计Python计算:双正态总体均值差的双侧区间估计》对你有帮助,请点赞、收藏,并留下你的观点哦!