KS test 是一非参数检验,用于检验某一个样本是否来自于某一特定分布,或者比较两个样本是否来自于相同的分布。这里我们先介绍检验样本是否来自于某一分布的KS检验,假设我们的样本为, ... ,
,要检验的分布函数为
, null hypothesis为 X来自于分布
.
在介绍KS检验之前,我们需要几点预备知识:
1. random step function
设, ... ,
为 i.i.d 的random variable,均值为0,方差为1. 对于每一个n, 我们定义如下的连续时间随机过程:
,
.
被称作random step function.
(random step function有一些性质,比如说,对于足够大的n,,根据中心极限定理,
接近于分布
; 当n趋向于无穷大时,Donsker's theorem表明
接近Wiener process,记为
,是一均值为0方差为t的正态分布,Norbert Wiener在研究一维 Brownian motion的一些性质的时候发现的)
2. Brownian bridge
设为一标准 Wiener process,则定义Brownian bridge为:
,
(Brownian bridge有一些性质,如可以证明与
相互独立。其均值为0,方差为
)
接下来介绍KS test的内容。
n个相互独立的随机样本 , ... ,
,其经验分布函数为:
, 其中
为indicator function,等于1 if
,等于0 otherwise.
构造Kolmogorov-Smirnov统计量 .(根据Glivenko-Canteli theorem, 若样本来自于分布
,则当n趋向于无穷大时,
应该almost surely收敛到0)
下一步是构造服从Kolmogorov distribution的随机变量 K,定义: ,其中
为Brownian bridge.
根据Kolmogorov theorem, as
. 取
为一实数使得
,则,若
,以 level
拒绝null hypothesis。
此检验在R等软件中都有运算包,可以直接使用。