计算指定置信水平下正态总体方差
σ
2
\sigma^2
σ2的置信区间,涉及样本方差
s
2
s^2
s2,样本容量
n
n
n和置信水平
1
−
α
1-\alpha
1−α等三个因素。计算步骤为
- 计算 χ 2 ( n − 1 ) \chi^2(n-1) χ2(n−1)分布概率为 1 − α 1-\alpha 1−α的双侧分位点 a a a和 b b b;
- 计算分子 ( n − 1 ) s 2 (n-1)s^2 (n−1)s2;
- 计算下限 ( n − 1 ) s 2 / b (n-1)s^2/b (n−1)s2/b和上限 ( n − 1 ) s 2 / a (n-1)s^2/a (n−1)s2/a
根据这一算法,定义计算正态总体参数 σ 2 \sigma^2 σ2双侧置信区间的Python函数如下
from scipy.stats import chi2 #导入chi2分布
def sigma2Bounds(d, df, confidence): #定义函数
a, b=chi2.interval(confidence, df) #计算chi2分布的双侧分位点
return d/b, d/a #计算上下限
第2~4行定义的sigma2Bounds函数,参数d,df,confidence分别对应置信上下限的分子
d
=
(
n
−
1
)
s
2
d=(n-1)s^2
d=(n−1)s2,
χ
2
\chi^2
χ2分布的自由度
n
−
1
n-1
n−1和置信水平
1
−
α
1-\alpha
1−α。第3行调用chi2对象的interval函数,计算自由度为df=
n
−
1
n-1
n−1的
χ
2
\chi^2
χ2分布,对应置信水平confidence=
1
−
α
1-\alpha
1−α的双侧分位点(详见博文《卡方分布分位点计算》)。返回值a即为
χ
1
−
α
/
2
2
(
n
−
1
)
\chi^2_{1-\alpha/2}(n-1)
χ1−α/22(n−1),b为
χ
α
/
2
2
\chi^2_{\alpha/2}
χα/22。第4行返回的是置信下限
(
n
−
1
)
s
2
χ
2
α
/
2
(
n
−
1
)
\frac{(n-1)s^2}{\chi2_{\alpha/2}(n-1)}
χ2α/2(n−1)(n−1)s2和置信上限
(
n
−
1
)
s
2
χ
1
−
α
/
2
2
\frac{(n-1)s^2}{\chi^2_{1-\alpha/2}}
χ1−α/22(n−1)s2。
例1 已知某种木材横向抗压力的试验值
X
X
X~
N
(
μ
,
σ
2
)
N(\mu,\sigma^2)
N(μ,σ2),对10个样品做横向抗压力试验,得到如下数据(单位:
N
/
c
m
2
N/cm^2
N/cm2):
482
,
493
,
475
,
471
,
510
,
446
,
435
,
418
,
394
,
469
482, 493, 475, 471, 510, 446, 435, 418, 394, 469
482,493,475,471,510,446,435,418,394,469
试计算此种木材横向抗压力的方差置信水平为0.95的双侧区间估计。
解: 下列代码完成本例计算。
import numpy as np #导入numpy
x=np.array([482, 493, 475, 471, 510, #样本观测值
446, 435, 418, 394, 469])
s2=x.var(ddof=1) #样本方差
n=x.size #样本容量
confidence=0.95 #置信度
d=(n-1)*s2 #置信上下限分子
a, b=sigma2Bounds(d, n-1, confidence) #总体方差的双侧置信区间
print('(%.4f, %.4f)'%(a, b))
程序的第4~6行分别计算样本方差s2( s 2 s^2 s2),样本容量n( n n n),置信水平confidence( 1 − α 1-\alpha 1−α)。第7行计算置信上下限的分子 d = ( n − 1 ) s 2 d=(n-1)s^2 d=(n−1)s2,第8行调用函数sigma2Bounds,传递参数d,n-1及confidence,计算总体参数 σ 2 \sigma^2 σ2置信水平为 1 − α 1-\alpha 1−α的置信区间。运行程序,输出
(601.1796, 4234.9817)
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
代码诚可贵,原理价更高。若为AI学,读正版书好。
返回《导引》