计算单个总体
X
X
X~
N
(
μ
,
σ
2
)
N(\mu,\sigma^2)
N(μ,σ2)的参数
μ
\mu
μ对给定置信水平
1
−
α
1-\alpha
1−α的单侧置信区间,方法与计算双侧置信区间大同小异。
- 计算枢轴量分布(已知 σ 2 \sigma^2 σ2为 N ( 0 , 1 ) N(0,1) N(0,1),未知 σ 2 \sigma^2 σ2为 t ( n − 1 ) t(n-1) t(n−1))概率为置信度 1 − α 1-\alpha 1−α的单侧分位数 a a a或 b b b;
- 计算增量因子 d d d(已知 σ 2 \sigma^2 σ2为 σ 2 n \sqrt{\frac{\sigma^2}{n}} nσ2,未知 σ 2 \sigma^2 σ2为 s 2 n \sqrt{\frac{s^2}{n}} ns2);
- 计算置信下限 x ‾ − a × d \overline{x}-a\times d x−a×d或置信上限 x ‾ + a × d \overline{x}+a\times d x+a×d。
下列代码定义计算总体均值 μ \mu μ的单侧置信区间的函数
from scipy.stats import norm, t #导入norm和t分布
import numpy as np #导入numpy
def muBound(mean, d, confidence, df=0, low=True):
alpha=1-confidence #计算置信度1-alpha中的alpha
if df==0: #已知总体方差
b=norm.isf(alpha) #正态右分位点
else: #未知总体方差
b=t.isf(alpha, df) #t分布右分位点
if low: #下限
return mean-b*d
return mean+b*d #上限
在计算总体参数
μ
\mu
μ的单侧置信区间的函数muBound定义中,参数mean,d,confidence和df的意义与函数muBounds(详见博文《单个正态总体均值的双侧区间估计》)的同名参数的一样,此不赘述。布尔型参数low表示计算的是否为置信下限,默认值True意为下限,若传递False则表示计算上限。为计算枢轴量服从的分布的右分位点(左分位点与之对称),第4行计算置信度
1
−
α
1-\alpha
1−α中的
α
\alpha
α。第5~8行的if-else语句根据参数df的值计算正分布态右分位点或t分布的右分位点(详见博文《标准正态分布分位点计算》和《学生分布分位点计算》)。第9行计算增量因子。第9~10行的if语句,计算置信下限并返回,第11行计算置信上限并返回。
例1 从一批灯泡中随机地抽取5只作寿命试验,测得寿命(单位:h)为
1050
,
1100
,
1120
,
1250
,
1280
1050, 1100, 1120, 1250, 1280
1050,1100,1120,1250,1280
设灯泡的寿命
X
X
X~
N
(
μ
,
σ
2
)
N(\mu,\sigma^2)
N(μ,σ2),其中
σ
2
=
10000
\sigma^2=10000
σ2=10000。试计算灯泡平均寿命置信水平为
0.95
0.95
0.95的单侧置信下限。
解: 下列代码完成本例计算。
import numpy as np #导入numpy
x=np.array([1050, 1100, 1120, 1250, 1280]) #样本观测值
mean=x.mean() #样本均值
sigma=100 #总体均方差
n=x.size #样本容量
d=sigma/np.sqrt(n) #置信下限增量
confidence=0.95 #置信水平
a=muBound(mean, d, confidence) #计算单侧置信下限
print('mu>=%.3f'%a)
由于例中计算的是已知总体方差 σ 2 = 10 0 2 \sigma^2=100^2 σ2=1002情形下 μ \mu μ的单侧置信下限,故第8行调用muBound函数时参数df和low均各自取其默认值0和True。运行程序,输出
mu>=1086.440
例2 从一批汽车轮胎中随机地取16只做磨损试验,记录其磨坏时所行使的路程(单位:km),算得样本均值为
x
‾
=
41116
\overline{x}=41116
x=41116,样本标准差
s
=
6346
s=6346
s=6346,设此样本来自正态总体
X
X
X~
N
(
μ
,
σ
2
)
N(\mu,\sigma^2)
N(μ,σ2),
μ
\mu
μ和
σ
2
\sigma^2
σ2均未知。试计算置信度为95%,
μ
\mu
μ的置信下限。
解: 下列代码完成本例计算。
import numpy as np #导入numpy
mean=41116 #样本均值
s=6346 #样本均方差
n=16 #样本容量
confidence=0.95 #置信度
d=sigma/np.sqrt(n) #置信下限因子
a=muBound(mean, d, confidence, n-1) #计算置信下限
print('mu>=%.3f'%a)
程序中第6行计算置信下限因子 s / n s/\sqrt{n} s/n,第7行调用muBound函数计算总体均值 μ \mu μ的单侧置信下限,故参数low使用默认值True,由于未知总体方差 σ 2 \sigma^2 σ2,故参数df传递给 t t t分布的自由度n-1。运行程序,输出
mu>=38334.785
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》