假设检验 Hypothesis Testing
假设检验(Hypothesis Testing)是统计推断的一类重要问题。
在总体的分布函数完全未知或只知其形式,但不知其参数的情况下,为了推断总体的某些未知特性,提出关于总体的假设。然后,根据少量样本的观测情况,对所提出的假设作出是接受,还是拒绝的决策。
比如,我们可以提出总体服从泊松分布的假设,然后根据实际样本接受这个假设,或推翻拒绝这个假设。
比如,我们也可以对正态分布的总体提出数学期望等于μ0的假设,然后根据实际样本,接受或拒绝这个假设。在统计推断时,我们会提出两个相互对立的假设,分别是原假设/零假设(Null Hypothesis)和备择假设(Alternative Hypothesis)。备择假设意味着,在原假设被拒绝后可供选择的假设。
以包装机包装为例,每袋包装的重量是个随机变量,它服从正态分布。当机器正常时,均值为0.5公斤,标准差为0.015公斤。某日开工后,为了检验包装机是否工作正常,随机抽取它所包装的产品 9 袋,称得重量为:
0.497 | 0.506 | 0.518 | 0.524 | 0.498 | 0.511 | 0.520 | 0.515 | 0.512 |
请问这一天机器是否正常工作?
以μ和 σ 分别表示这一天产品包装重量的总体X的均值( mean )和标准差(standard deviation)。一般标准差比较稳定,所以可以假设 σ=0.015 。于是X∼N(μ,0.0152)。这里μ未知,问题是根据样本判断μ=0.5还是μ≠0.5。
于是,我们可以提出两个相互对立的假设:
H0:μ=μ0=0.5
H1:μ≠μ0
因为ˉX是 μ 的无偏估计,ˉX的观察值 ˉx 的大小在一定程度上反映μ的大小。无偏估计(unbiased estimation)是用统计样本量来估计总体参数的一种无偏推断。估计量的数学期望等于被估计参数的真实值,则称此估计量为被估计参数的无偏估计。
如果假设H0为真,则观察值ˉx与 μ0 的偏差 |ˉx−μ0| 一般不应太大。若|ˉx−μ0|过分大,我们就可以怀疑假设H0的正确性,而拒绝H0。
考虑到H0为真时,ˉX∼N(μ0,σ) ,于是 ˉX−μ0σ/√n∼N(0,1)。而衡量 |ˉx−μ0| 的大小,就可归结为衡量 |ˉx−μ0|σ/√n 的大小。
这样,我们就可以选定一个较小的正数 k,使得,当观察值 ˉx 满足|ˉx−μ0|σ/√n≥k时,就拒绝假设 H0,反之,若 |ˉx−μ0|σ/√n<k ,就接受假设 H0。
然而,对于不同的样本,相同的k取值,也会得到不同的拒绝H0的概率。这样就没有参考意义。所以,需要控制当H0为真时,拒绝 H0 的概率的大小。假设一个值α(0<α<1),使得犯这种错的概率在可接受范围内。
P{当H0为真时,拒绝H0}≤α
因为P的最大取值为 α,所以得到:
P{当H0为真时,拒绝H0}=Pμ0{|ˉx−μ0|σ/√n≥k}=α
由于当H0为真时,Z=ˉX−μ0σ/√n∼N(0,1)。得出,使 Pμ0{|ˉx−μ0|σ/√n≥k}=α 成立的k值为 zα/2 。
因此,若Z观察值满足 |z|=|ˉx−μ0|σ/√n≥k=zα/2 ,则拒绝 H0。
而 |z|=|ˉx−μ0|σ/√n<k=zα/2 ,则接受H0。
回到本例子,α=0.05 ,则有 k=z0.05/2=z0.025=1.96,又已知n=9,μ0=0.5,σ=0.015,ˉx=0.511即有:
|ˉx−μ0σ/√n|=|0.511−0.50.015/√9|=|0.0110.005|=2.2>1.96
于是,拒绝 H0。所以可以认为这一天包装机器工作不正常。
在 |z|=|ˉx−μ0|σ/√n<k=zα/2 中,我们称数α为 显著性水平(significance level) 。关于ˉx与 μ0 有无显著性差异的判断是在显著性水平α下作出的。
于是,假设验证问题可以这样表述:在显著性水平α下,检验假设
H0:μ=μ0, H1:μ≠μ0
If our data produce values that meet or exceed the significance level α, then we have sufficient evidence to reject the null hypothesis H0; if not, we fail to reject the null.
拒绝原假设H0的区域成为 拒绝域(rejection region/critical region) ,拒绝域的边界点称为临界点( threshold )。备择条件H1:μ≠μ0 ,μ可能大于μ0也可能小于μ0。所以称为双边备择假设。而这样的假设验证称为双边假设验证。
接下来,我们用 R 的 z.test
函数来进行假设验证测试。
首先,我们用直方图看看样本观察值:
library(rcompanion) data <- c(0.497, 0.506, 0.518, 0.524, 0.498, 0.511, 0.520, 0.515, 0.512) plotNormalHistogram(data)
正态概率图(Normal Quantile-Quantile Plot):
library(rcompanion) data <- c(0.497, 0.506, 0.518, 0.524, 0.498, 0.511, 0.520, 0.515, 0.512) qqnorm(data) qqline(data, col="red")
调用z.test
进行假设验证测试:
library("BSDA") data <- c(0.497, 0.506, 0.518, 0.524, 0.498, 0.511, 0.520, 0.515, 0.512) z.test(x = data, alternative = "two.sided", mu = 0.5, sigma.x = 0.015, conf.level = 0.95)
One-sample z-Test data: data z = 2.2444, p-value = 0.0248 alternative hypothesis: true mean is not equal to 0.5 95 percent confidence interval: 0.5014224 0.5210220 sample estimates: mean of x 0.5112222
从结果来看,
|z|=|ˉx−μ0σ/√n|=2.2444
p值( p-value )为 0.0248。 p 值是根据实际观察值计算出来的显著性水平。
因为
P{当H0为真时,拒绝H0}=Pμ0{|ˉx−μ0|σ/√n≥k}=α
所以,当 p 值越小,表示表示“当原假设为真时,拒绝该假设的概率越小。一般以小于 p 值小于 0.05为拒绝原假设的普遍标准。