对计算双正态总体方差比的双侧区间估计的函数sigma2RatioBounds(详见博文《双正态总体方差比的双侧区间估计》)稍加修改,可得下列计算双正态总体方差比的单侧区间估计的函数sigma2RatioBound。
def sigma2RatioBound(d, dfn, dfd #函数定义
confidence, low=True):
alpha=1-confidence #计算置信度1-alpha中的alpha
if low: #若为下限
a=f.isf(alpha, dfn, dfd) #计算单侧右分位点
else: #若为上限
a=f.ppf(alpha, dfn, dfd) #计算单侧左分位点
return d/a #计算上(下)限
与sigma2RatioBounds相比,sigma2RatioBound多了一个区分计算置信上下限的参数low,缺省值为True表示计算下限,若传递False则计算上限。
例1 设两位化验员A,B独立地对某聚合物含氯量用相同的方法各做10次测定。其测定值的样本方差分别为
s
A
2
=
0.5419
s_A^2=0.5419
sA2=0.5419,
s
B
2
=
0.6065
s_B^2=0.6065
sB2=0.6065。设
σ
A
2
,
σ
B
2
\sigma_A^2, \sigma_B^2
σA2,σB2分别为A、B所测定的测定值总体的方差。设总体均为正态的,且两个样本相互独立。计算方差比
σ
A
2
/
σ
B
2
\sigma_A^2/\sigma_B^2
σA2/σB2的置信度为0.95的置信上限。
解: 下列代码完成本例计算。
s1=0.5419 #样本方差1
s2=0.6065 #样本方差2
n1=10 #样本容量1
n2=10 #样本容量2
d=s1/s2 #样本方差比
confidence=0.95 #置信水平
a=sigma2RatioBound(d, n1-1, n2-1, #计算置信上限
confidence, low=False)
print('sigma1^2/sigma2^2<=%.4f'%a)
由于本例计算的是总体方差比的单侧置信上限,故7~8行调用函数sigma2RatioBound时传递给参数low的是False。运行程序,输出
sigma1^2/sigma2^2<=2.8403
由于
1
<
2.8403
1<2.8403
1<2.8403,故以0.95的置信水平认为两位化验员测量的含氯量无显著差别。
例2 用甲、乙两台仪器独立重复地测量A、B两地距离(单位:m)。用甲仪器测量了10次得到平均值为45479.431,标准差为0.0440。用乙仪器测量了15次得到平均值为45479.398,标准差为0.0308。假设这两台仪器的测量值都服从正态分布。试计算测量值的方差比置信度为0.95的置信下限。
解: 下列代码完成本例计算。
s1=0.0440**2 #样本方差1
s2=0.0308**2 #样本方差2
n1=10 #样本容量1
n2=15 #样本容量2
d=s1/s2 #样本方差比
confidence=0.95 #置信水平
a=sigma2RatioBound(d, n1-1, n2-1, #计算置信上限
confidence, low=False)
print('sigma1^2/sigma2^2>=%.4f'%a)
与上例相仿,为计算置信上限,sigma2RatioBound函数的参数low传递False。运行程序,输出
sigma1^2/sigma2^2>=6.1744
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》