数理统计14:什么是假设检验,拟合优度检验(1),经验分布函数
在之前的内容中,我们完成了参数估计的步骤,今天起我们将进⼊假设检验部分,这部分内容可参照《数理统计学教程》(陈希孺、倪国熙)。由于本系列为我独⾃完成的,缺少审阅,如果有任何错误,欢迎在评论区中指出,谢谢!
⽬录
Part 1:什么是假设检验
假设检验是⼀种统计推断⽅法,⽤来判断样本与样本、样本与总体的差异是由抽样误差引起还是本质差别造成的。其步骤,其实就是提出⼀个假设,然后⽤抽样作为证据,判断这个假设是正确的或是错误的,这⾥判断的依据就称为该假设的⼀个检验。
假设检验在数理统计中有重要的⽤途,⽐如:橙⼦的平均重量是80⽄,这就是⼀个假设。我们怎么才能知道它是对的还是错的?这需要我们对橙⼦总体进⾏抽样,然后对样本进⾏⼀定的处理,⽐如计算总体均值的区间估计,如果区间估计不包含80⽄,就认为原假设不成⽴,便拒绝原假设。
当然,由于样本具有随机性,因此我们只是对该假设进⾏检验⽽不是证明,也就是说不论假设检验的结果是接受假设还是拒绝假设,都不能认为假设本⾝是正确的或是错误的。同时,假设的检验也不是唯⼀确定
的,对任何假设都可以有⽆数种⽅案进⾏检验,⽐如上⾯的例⼦,95%的区间估计是⼀种检验,99%的区间估计也可以作为检验,90%的当然也可以,只要事先确定了即可。
总之,要将实⽤问题转化为统计假设检验问题处理,⼀般需要经历以下⼏个步骤:明确所要处理的问题,将其转化为⼆元问题,只能⽤“是”和“否”来回答。
设计适当的检验,规定假设的拒绝域,即拒绝假设时样本X 会落⼊的区域范围(当然也可以是统计量会落⼊的范围,这两个意思是⼀致的)。抽取样本X 进⾏观测,计算需要的统计量的值。
根据样本的具体值作出接受假设或者否定假设的决定。以下是假设检验问题的⼀些常⽤概念:
零假设即原假设,指的是进⾏统计检验时预先建⽴的假设,⼀般是希望证明其错误的假设,⽤字母H 0表⽰。这种区分⽅式⽐较⽞乎。备择假设指的是与原假设所相对⽴的假设,如果我们拒绝了原假设,就意味着需要接受备择假设。
拒绝域指的是我们会在什么时候拒绝原假设,也就是拒绝原假设时样本所属的集合,它是样本空间的⼀个⼦集。在实际⽣活中,可以作出的假设是多种多样的,对不同的检验问题有不同的⽅法,我们接下来对其分别进⾏讨论。Part 2:拟合优度检验
拟合优度检验指的是如下的检验问题——对于总体X 和已知的分布F ,H 0:X 的分布为F 。即⽤F (x )
这个分布函数来拟合样本X 1,⋯,X n ,拟合的优良程度如何。对于拟合优度检验,其检验思想是构造⼀个统计量D ,这个统计量刻画样本X =(X 1,⋯,X n )与理论分布F 的偏离程度,D 越⼤代表理论分布F 与样本表现出来的分布越不相符。由于在H 0成⽴也就是X 的分布为F 的条件下,D 作为⼀个统计量具有确定的抽样分布,且这个统计量描述的是拟合的优良程度,⾃然D 越⼩说明拟合得越好。因此,我们这样定义拟合优度:在获得X 的情况下计算出D 的观测值D 0,则拟合优度为
p (D 0)=P(D ≥D 0|H 0).
直观地想象拟合优度,由于作为偏离量D 肯定是⾮负的,所以如果D 0越⼩,拟合优度就越⼤,同时这也代表着样本与理论程度的偏离⼩,所以拟合优度可以作为理论分布F 是X 的分布的可靠性度量。有了拟合优度之后,如果拟合优度太⼩,我们就会否定H 0,否则接受H 0,这需要⼀个阈值α。常常取α=0.05,如果拟合优度⼩于α就否定零假设,不过阈值的设定多少是有些主观的,因此客观的拟合优度往往⽐接受和否定的⼆元回答更有价值。
不过,我们现在还没有讨论偏离量具体应该如何定义,并且偏离量的定义⽅式也可以多种多样,因此我们接下来将分情况讨论拟合优度检验中,偏离统计量D 的定义。
Section 1:离散型(分布已知)
如果X 是离散型随机变量,则可以进⼀步区分为如下的两种:有限与可列。我们先讨论有限且分布已知的情况。现在,原假设是H 0:X 服从如下的分布:
F :
a 1a 2⋯a r p 1p 2⋯
p r
,
r
i =1p
i
=1.
适⽤于这种情况的检验是Pearson 的χ2检验,这是我们所接触的第⼀个重要检验。以νi 记所有样本中取值为a i 的个数,称为观察频数,即
νi =#{j |X j =a i }.
如果样本容量为n ,则理论上,应当有以下关系式:
p i ≈νi n ,
νi ≈np i .
称np i 为理论频数,如果H 0成⽴,则|np i −νi |对所有i 都不应该过⼤,但⼜不能简单地取(np i −νi )2,需要考虑权重问题。Pearson 引进如下的统计量,常称为Pearson χ2统计量,为
K n =
r
i =1
(np i −νi )2
np i
这⾥,使⽤1/np i 作为权重的调整值,构造出检验统计量。使⽤这个权重的原因是Pearson 证明的定理:在H 0成⽴的条件下,有K n d
→χ2
r −1。由此,如果由样本计算出K n 的观测值是k 0,则拟合优度为
p (k 0)=P(K n ≥k 0|H 0)≈P(˜
χ2
r −1≥k 0),
这⾥˜χ2
r −1指的是服从χ2
r −1
分布的随机变量,这样拟合优度就可以⽤χ2分布的分位数表近似地计算。实际应⽤时,我们不⼀定需要这么精确的拟合优度,故只要查
询阈值α对应的分位数值χ2α(r −1),并⽐较它与k 0的⼤⼩即可,当χ2
α(r −1)≤k 0时拒绝H 0。这⾥,我们以书上的例题为例,介绍如何⽤R 语⾔计算拟合优度。现在n =556,
νi p i
np i 315
108101329/163/163/161/16312.75
104.25
104.25
34.75
调⽤⾃定义函数pearson.chi2(obersved, prob),代码见附录。这个函数将返回⼀个列表,其中我们所需
要的是χ2统计量的值和拟合优度,故进⾏如下调⽤:> observed <- c(315, 108, 101, 32)(
)
(
)
Loading [MathJax]/jax/element/mml/optable/BasicLatin.js
> prob <- c(9, 3, 3, 1)
> pearson.chi2(observed, prob)
Pearson chi2 test
The value of K:  0.470024
p-value:  0.9254259
Accept.
这⾥,The value of K是卡⽅统计量的值,p-value是拟合优度。如果需要进⼀步使⽤返回值的其他信息,这个函数会返回⼀个列表。
如果X是可列的离散随机变量,则需要对观测进⾏分组,将其划分为r个区间,这样就将其转化为有限的情形。具体地,分组需要让每⼀个组内的理论频数和观察频数都不⼩于5为宜。
Section 2:连续型(分布已知)
如果理论分布是⼀个已知的连续型分布,虽然分组法依然可以解决(具体可以参考书本内容),但是不论如何取分组间隔,都多少遗漏了信息。对于连续型分布的验证,使⽤柯尔莫哥洛夫检验(柯⽒检验)更为合适。为此,我们需要先介绍经验分布函数。
经验分布函数是⼀个结合了分布函数的单调、⾮降、左连续特⾊的函数,不同的是它可以由样本计算得出。简⽽⾔之,经验分布函数就是将经验分布函数中,F(x)=P(X<x)的概率变成频率。
注意,苏中根《概率论》中,分布函数的定义是右连续的即F(x)=P(X≤x),⽽这⾥经验分布函数的定义却是左连续的。不过,将分布函数定义成左连续或是右连续并不影响使⽤,我们不妨就遵照左连续的定义。
设X1,⋯,X n是X∼F中抽取的简单随机样本,次序统计量为(X(1),⋯,X(n)),则∀x,定义以下函数为经验分
布函数:
F n(x)=0,x≤X(1);
k
n,X
(k)
<x≤X(k+1),k=1,⋯,n−1; 1,X(n)<x.
R语⾔的df函数可以绘制经验分布函数。下⾯给出⼀个指数分布的经验分布函数与实际分布函数的⽰意图:对于每⼀个确定的x,易知
F n(x)=1
n
n
i=1I−∞<X
i<x
,
P(I−∞<X
i<x
=1)=P(X i<x)=F(x),所以F n(x)是⼀个有限取值的离散型随机变量,有
nF n(x)∼B(n,F(x)).
这样,有E[F n(x)]=F(x),由强⼤数定律,∀x∈R,F n(x)a.s.
→F(x),即经验分布函数逐点收敛于分布函数。更进⼀步,如果记D
n为F n(x)与F(x)的最⼤偏离,即
D n=sup
则格⾥汶科定理保证了
\mathbb{P}\left(\lim_{n\to \infty}D_n=0 \right)=1.
柯尔莫哥洛夫进⼀步地证明了以下的结论:
\lim_{n\to \infty}\mathbb{P}\left(D_n\le \frac{\lambda}{\sqrt{n}} \right)=K(\lambda),\\ K(\lambda)=\sum_{k=-\infty}^\infty (-1)^ke^{-2k^2\lambda^2},\lambda>0.注意这个D_n,它显然可以⽤来描述经验分布与理论分布的偏离程度,因此我们显然可以⽤它⼊⼿来完善拟合优度检验理论。柯⽒检验就是建⽴在经验分布函数基础上的,此时我们取理论分布为F计算D_n=\sup\limits_{x\in\mathbb{R}}|F_n(x)-F(x)|,再根据确定的阈值\alpha,让K(\lambda)=\alpha到合适
的\lambda,则检验的临界值就是
D_{n,\alpha}=\frac{\lambda}{\sqrt{n}}=\frac{K^{-1}(1-\alpha)}{\sqrt{n}}.
由于经验分布函数是阶梯型的,真实的分布函数⼜是单调的,所以D_n必定出在各个X_i的观测值处,具体地有
D_n=\max\left\{\left|F_0(x_{(i)})-\frac{i-1}{n} \right|,\left|F_0(x_{(i)})-\frac{i}{n} \right|,\quad \forall i=1,2,\cdots,n \right\}.
R语⾔提供了Kolmogorov-Smirnov检验函数ks.test(x, y),其中斯⽶尔诺夫检验适⽤于检验两组样本是否同分布的。以书上例题为例,可以如下调⽤:
> num <- c(0.034, 0.437, 0.863, 0.964, 0.366, 0.469, 0.637, 0.632, 0.804, 0.261)  # 书本误将0.437打成了0.0437,可以在底下的计算表中看出
> ks.test(num, qunif)
One-sample Kolmogorov-Smirnov test
data:  num
D = 0.166, p-value = 0.9052
alternative hypothesis: two-sided
如果我们需要验证的已知分布,则ks.test的第⼆个参数直接⽤分布的名称即可(采⽤默认参数,如果不是默认的U(0,1)或者N(0,1)则对样本数据作变换)。
今天,我们介绍了拟合优度检验的部分内容,由于篇幅所限,拟合优度检验的剩余部分将放到下⼀篇⽂章中介绍。关于Pearson \chi^2独⽴性检验的函数,我将其放到附录中,在使⽤时可以⽤source()函数访问,也可以直接将函数复制运⾏。
附录:
1、经验分布函数绘制
rm(list=ls())
dev.off()
opar <- adonly = T)
x <- seq(0,6,0.001)
y <- pexp(x, rate = 2)
par(mfrow = c(2,2))
{
lines(x, y, col='red')
2、⾃定义函数pearson.chi2()
pearson.chi2 <- function(x, p, alpha=0.05){
# x是实际频数,p是概率列表,alpha是阈值
rt <- list()
r <- length(x)  # 可能出现的情况
p <- p / sum(p)  # 归⼀化概率列表
n <- sum(x)  # 总数
np <- n*p  # 理论频数
rt$observed <- x
rt$dim <- r
rt$total.observed <- n
rt$prob <- p
rt$expect <- np
K <- 0
sqrt是什么的缩写for (i in 1:r){
K = K + (np[i]-x[i])^2/np[i]
}
rt$pearson.chi2 <- K
p.value <- 1 - pchisq(K, df=r-1)
rt$p.value <- p.value
cat("\n\tPearson chi2 test\n\n")
cat("The value of K: ", K, "\n")
cat("p-value: ", p.value, "\n")
if (p.value > alpha){
cat("Accept.\n")
}
else{
cat("Reject.\n")
}
lst <- rt
}