设总体
X
∼
N
(
μ
,
σ
2
)
,
μ
,
σ
2
X\sim N(\mu, \sigma^2), \mu, \sigma^2
X∼N(μ,σ2),μ,σ2未知,
X
1
,
.
.
.
,
X
n
X_1,...,X_n
X1,...,Xn是总体X的样本。则其检验统计量为:
(
n
−
1
)
S
2
σ
2
∼
χ
2
(
n
−
1
)
\frac{(n-1)S^2}{\sigma^2}\sim \chi^2 (n-1)
σ2(n−1)S2∼χ2(n−1)
方差的假设检验也可分为三类:双边检验,左侧检验和右侧检验。
双边检验
假设检验的形式:
H
0
:
σ
2
=
σ
0
2
H
1
:
σ
2
≠
σ
0
2
H_0: \sigma^2=\sigma_0^2 \quad H_1:\sigma^2\neq \sigma_0^2
H0:σ2=σ02H1:σ2=σ02
拒绝域为:
χ
2
=
(
n
−
1
)
s
2
σ
0
2
≤
χ
1
−
α
/
2
2
(
n
−
1
)
o
r
χ
2
=
(
n
−
1
)
s
2
σ
0
2
≥
χ
α
/
2
2
(
n
−
1
)
\chi^2=\frac{(n-1)s^2}{\sigma_0^2} \le \chi^2_{1-\alpha/2}(n-1) \quad or\quad \chi^2=\frac{(n-1)s^2}{\sigma_0^2}\ge \chi^2_{\alpha/2}(n-1)
χ2=σ02(n−1)s2≤χ1−α/22(n−1)orχ2=σ02(n−1)s2≥χα/22(n−1)
p值求法:
因为
χ
2
\chi^2
χ2为非对称分布,所以在求其p值是一定要注意:
p
=
{
χ
2
(
n
−
1
)
≤
χ
0
2
}
p=\{\chi^2(n-1) \le \chi_0^2\}
p={χ2(n−1)≤χ02}
上式中,n为样本容量,而
χ
0
2
=
(
n
−
1
)
s
2
σ
0
2
\chi_0^2 =\frac{(n-1)s^2}{\sigma_0^2}
χ02=σ02(n−1)s2
真正的pval
应该如下取值:
p
v
a
l
=
2
m
i
n
(
p
,
1
−
p
)
pval = 2min(p, 1-p)
pval=2min(p,1−p)
左侧检验
假设检验的形式:
H
0
:
σ
2
=
σ
0
2
H
1
:
σ
2
<
σ
0
2
H_0: \sigma^2=\sigma_0^2 \quad H_1:\sigma^2\lt \sigma_0^2
H0:σ2=σ02H1:σ2<σ02
拒绝域为:
χ
2
=
(
n
−
1
)
s
2
σ
0
2
≤
χ
1
−
α
2
(
n
−
1
)
\chi^2=\frac{(n-1)s^2}{\sigma_0^2} \le \chi^2_{1-\alpha}(n-1)
χ2=σ02(n−1)s2≤χ1−α2(n−1)
p值求法:
p
v
a
l
=
{
χ
2
(
n
−
1
)
≤
χ
0
2
}
pval=\{\chi^2(n-1) \le \chi_0^2\}
pval={χ2(n−1)≤χ02}
右侧检验
假设检验的形式:
H
0
:
σ
2
=
σ
0
2
H
1
:
σ
2
>
σ
0
2
H_0: \sigma^2=\sigma_0^2 \quad H_1:\sigma^2\gt \sigma_0^2
H0:σ2=σ02H1:σ2>σ02
拒绝域为:
χ
2
=
(
n
−
1
)
s
2
σ
0
2
≥
χ
α
2
(
n
−
1
)
\chi^2=\frac{(n-1)s^2}{\sigma_0^2}\ge\chi^2_\alpha(n-1)
χ2=σ02(n−1)s2≥χα2(n−1)
p值求法:
p
v
a
l
=
{
χ
2
(
n
−
1
)
≥
χ
0
2
}
pval=\{\chi^2(n-1) \ge \chi_0^2\}
pval={χ2(n−1)≥χ02}
Python计算实现
import numpy as np
from scipy import stats
def chi2test(sample_var, sample_num,sigma_square,side='both', alpha=0.05):
'''
参数:
sample_var--样本方差
sample_num--样本容量
sigma_square--H0方差
返回值:
pval
'''
x0=((sample_num-1)*sample_var)/(sigma_square)
chi2 = stats.chi2(df=sample_num-1)
pval = None
if side == 'both':
p = chi2.cdf(x0)
pval = 2*np.min(p, 1-p)
elif side == 'left':
pval = chi2.cdf(x0)
else:
pval = chi2.sf(x0)
return {"pval": pval}
应用案例
例1:一个园艺科学家正在培养一个新品种苹果,这种苹果除了口感好和颜色鲜艳外,另一个重要特征是单个重量差异不大(对照品种的方差
σ
2
=
7
\sigma^2=7
σ2=7). 为了评估新苹果,他随机挑选了 25 个测试重量(单位:克),其样本方差为
S
2
=
4.25
S^2=4.25
S2=4.25. 问新品种的方差是否比对照品种方差小?(
α
=
0.05
\alpha=0.05
α=0.05)
解:
H
0
:
σ
2
≥
7
H
1
:
σ
2
≤
7
H_0:\sigma^2\ge 7 \quad H_1:\sigma^2 \le7
H0:σ2≥7H1:σ2≤7
python计算如下:
chi2test(4.25, 25, 7,side='left')
# 结果
{'pval': 0.067325420131622044}
因为 p v a l = 0.067325420131622044 > α = 0.5 pval=0.067325420131622044>\alpha=0.5 pval=0.067325420131622044>α=0.5, 所以接受原假设,即认为新品种的方差并不比对照组的小。
参考文献
- 《概率论与数理统计》 浙大
- numpy and scipy documents
联系交流
- email: hflag@163.com
- qq: 532843488
本人一直从事《概率论与数理统计》教学,欢迎遇到难题的童靴联系我。