与计算双正态总体均值差的双侧区间估计相仿,我们可以调用单正态总体均值的单侧置信区间的计算函数muBound(详见博文《单个正态总体均值的单侧区间估计》)计算双正态总体均值差的单侧区间估计:只需对参数mean传递样本均值差
x
‾
−
y
‾
\overline{x}-\overline{y}
x−y,参数d传递
σ
1
2
n
1
+
σ
2
2
n
2
\sqrt{\frac{\sigma_1^2}{n_1}+\frac{\sigma_2^2}{n_2}}
n1σ12+n2σ22或
s
w
1
n
1
+
1
n
2
s_w\sqrt{\frac{1}{n_1}+\frac{1}{n_2}}
swn11+n21,其中
s
w
=
(
n
1
−
1
)
s
1
2
+
(
n
2
−
1
)
s
2
2
n
1
+
n
2
−
2
s_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,参数confidence传递
1
−
α
1-\alpha
1−α,参数df保持缺省值0或
n
1
+
n
2
−
2
n_1+n_2-2
n1+n2−2,参数low保持缺省值True计算置信下限,传递False计算置信上限。
例1 用甲、乙两台仪器独立重复地测量A、B两地距离(单位:m)。用甲仪器测量了10次得到平均值为45479.431,标准差为0.0440。用乙仪器测量了15次得到平均值为45479.398,标准差为0.0308。假设这两台仪器的测量值都服从正态分布,且方差相同。试计算测量值的均值差置信度为0.95的置信下限。
解: 下列代码完成本例计算。
import numpy as np #导入numpy
xmean=45479.431 #样本均值1
ymean=45479.398 #样本均值2
mean=xmean-ymean #样本均值差
s1=0.0440**2 #样本方差1
s2=0.0308**2 #样本方差2
n1=10 #样本容量1
n2=15 #样本容量2
sw=np.sqrt(((n1-1)*s1+(n2-1)*s2)/(n1+n2-2)) #sw
d=sw*np.sqrt(1/n1+1/n2) #置信下限因子
confidence=0.95 #置信水平
a=muBound(mean, d, confidence, n1+n2-2) #计算置信下限
print('mu1-mu2>=%.4f'%a)
注意第12行调用muBound函数传递的各个参数:mean传递样本均值差 x ‾ − y ‾ \overline{x}-\overline{y} x−y(第4行),参数d传递 s w 1 n 1 + 1 n 2 s_w\sqrt{\frac{1}{n_1}+\frac{1}{n_2}} swn11+n21(第9~10行),参数confidence传递 1 − α 1-\alpha 1−α(第11行),参数df传递 n 1 + n 2 − 2 n_1+n_2-2 n1+n2−2,参数low保持缺省值True。运行程序,输出
mu1-mu2>=0.0074
由于置信下限大于0,故可认为甲仪器测量值
X
X
X的均值
μ
1
\mu_1
μ1显著大于乙仪器测量值
Y
Y
Y的均值
μ
2
\mu_2
μ2。
例2 研究两种固体燃料火箭推进器的燃烧率,设两者都服从正态分布。各取容量
n
1
=
n
2
=
20
n_1=n_2=20
n1=n2=20的样本,且得样本观测值的均值分别为
x
‾
=
18
c
m
/
s
\overline{x}=18cm/s
x=18cm/s,
y
‾
=
24
c
m
/
s
\overline{y}=24cm/s
y=24cm/s,样本均方差
s
1
=
s
2
=
0.05
c
m
/
s
s_1=s_2=0.05cm/s
s1=s2=0.05cm/s为,两个样本相互独立。计算燃烧率总体均值差
μ
1
−
μ
2
\mu_1-\mu_2
μ1−μ2置信度为0.99的置信上限。
解: 下列代码完成本例计算。
import numpy as np #导入numpy
xmean=18 #样本均值1
ymean=24 #样本均值2
mean=xmean-ymean #样本均值差
s1=0.05**2 #样本方差1
s2=0.05**2 #样本方差2
n1=20 #样本容量1
n2=20 #样本容量2
sw=np.sqrt(((n1-1)*s1+(n2-1)*s2)/(n1+n2-2)) #sw
d=sw*np.sqrt(1/n1+1/n2) #置信上限因子
confidence=0.99 #置信水平
a=muBound(mean, d, confidence, n1+n2-2, low=False) #计算置信上限
print('mu1-mu2<=%.4f'%a)
注意,第12行调用函数muBound传递给参数low的是布尔值False,因为此处要计算的是置信上限。运行称,输出
mu1-mu2<=-5.9616
由于置信上限小于零,故认为第一种燃料的燃烧率均值显著小于第二种燃料的燃烧率均值。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》