知经 KNOWECON · 卓越的经济金融统计数学学习平台

柯尔莫哥洛夫-斯米尔诺夫检验

# 柯尔莫哥洛夫-斯米尔诺夫检验 (Kolmogorov-Smirnov Test)

柯尔莫哥洛夫-斯米尔诺夫检验 (Kolmogorov-Smirnov Test),通常简称为 K-S检验KS检验,是一种重要的{{{非参数统计}}}方法,用于{{{假设检验}}}。它的核心功能是比较一个样本的频率分布与一个理论分布,或者比较两个独立样本的频率分布,从而判断它们之间是否存在显著差异。

该检验的关键思想是基于{{{经验分布函数}}} (Empirical Distribution Function, EDF)。它通过测量EDF与理论的{{{累积分布函数}}} (Cumulative Distribution Function, CDF)之间,或两个样本的EDF之间的最大偏差(距离)来构造检验统计量。作为一种{{{非参数检验}}},它不要求被测数据服从特定的分布(如{{{正态分布}}}),因此适用性非常广泛。

K-S检验主要分为两种类型:

1. 单样本K-S检验 (One-Sample K-S Test):用于检验一个数据样本是否来自于一个特定的、已知的连续分布(例如,标准正态分布或指数分布)。 2. 双样本K-S检验 (Two-Sample K-S Test):用于检验两个独立的样本是否来自于同一个(但未知的)连续分布。

## 核心概念:经验分布函数 (EDF)

为了理解K-S检验,必须首先掌握经验分布函数 (EDF) 的概念。对于一个容量为 $n$ 的随机样本 $X_1, X_2, \ldots, X_n$,其EDF $F_n(x)$ 定义为样本中不大于 $x$ 的观测值的比例。

其数学表达式为: $$ F_n(x) = \frac{1}{n} \sum_{i=1}^{n} I(X_i \le x) $$ 其中 $I(\cdot)$ 是{{{指示函数}}},当条件 $X_i \le x$ 成立时,其值为1,否则为0。

$F_n(x)$ 是一个阶梯函数,每当 $x$ 越过一个样本点时,其函数值就会跳跃增加 $1/n$(如果没有重复值)。$F_n(x)$ 是对真实但未知的总体累积分布函数 $F(x)$ 的一个估计。K-S检验的本质就是衡量这个估计 $F_n(x)$ 与理论上的 $F(x)$(或另一个样本的EDF)之间的“拟合优度”。

## 单样本K-S检验

目的:检验一个随机样本 ${X_1, X_2, \ldots, X_n}$ 是否来自于一个具有已知CDF $F(x)$ 的连续分布。

1. 假设的建立

* {{{原假设}}} ($H_0$):样本数据来自于指定的分布。即 $F_n(x) = F(x)$ 对所有 $x$ 成立。 * {{{备择假设}}} ($H_a$):样本数据不来自于指定的分布。即存在至少一个 $x$ 使得 $F_n(x) \neq F(x)$。

2. 检验统计量 $D_n$

单样本K-S检验的统计量 $D_n$ 定义为EDF $F_n(x)$ 和理论CDF $F(x)$ 之间的最大绝对垂直距离。

$$ D_n = \sup_x |F_n(x) - F(x)| $$

其中 $\sup_x$ 表示取遍所有 $x$ 值的{{{上确界}}},在实际计算中即为最大值。

为了计算 $D_n$,通常需要将样本数据进行排序,得到顺序统计量 $x_{(1)} \le x_{(2)} \le \ldots \le x_{(n)}$。然后,统计量 $D_n$ 可以通过以下更实用的公式计算:

$$ D_n = \max \left( \max_{i=1,\dots,n} \left( \frac{i}{n} - F(x_{(i)}) \right), \max_{i=1,\dots,n} \left( F(x_{(i)}) - \frac{i-1}{n} \right) \right) $$

这里,$\frac{i}{n}$ 是在样本点 $x_{(i)}$ 处的EDF值,而 $\frac{i-1}{n}$ 是在 $x_{(i)}$ 左侧无穷小处的EDF值。这个公式确保我们捕捉到EDF阶梯函数的每个“角落”与平滑CDF曲线之间的最大距离。

3. 决策规则

* 计算出检验统计量 $D_n$ 的值。 * 对于给定的{{{显著性水平}}} $\alpha$(例如0.05),查找柯尔莫哥洛夫分布的临界值 $D_{n, \alpha}$。这个临界值仅依赖于样本量 $n$ 和 $\alpha$。 * 决策:如果计算出的 $D_n$ 大于临界值 $D_{n, \alpha}$,则我们有足够的证据拒绝原假设 $H_0$,认为样本并非来自指定的分布。否则,我们不能拒绝 $H_0$。 * 同样,可以通过计算{{{p-value}}}来进行决策。如果 p-value 小于 $\alpha$,则拒绝 $H_0$。

重要注意事项 (Lilliefors Test) 标准的单样本K-S检验要求理论分布 $F(x)$ 的所有参数都是预先指定的,而不是从数据中估计的。例如,在检验数据是否服从{{{正态分布}}}时,必须事先知道其{{{均值}}} $\mu$ 和{{{标准差}}} $\sigma$。

如果使用从样本数据中估计出的参数(例如样本均值 $\bar{X}$ 和样本标准差 $s$)来构造理论分布 $F(x)$,那么传统的K-S临界值将不再适用。这样做会使检验变得过于保守(即更不容易拒绝 $H_0$)。在这种常见的情况下,应使用一种修正的K-S检验,即 {{{Lilliefors检验}}},它有自己的一套临界值表。

## 双样本K-S检验

目的:检验两个独立的随机样本,来自总体1的样本 ${X_1, \ldots, X_{n_1}}$ 和来自总体2的样本 ${Y_1, \ldots, Y_{n_2}}$,是否来自于同一个(但具体形式未知的)连续分布。

1. 假设的建立

* 原假设 ($H_0$):两个样本来自于相同的分布。即它们的CDF相同,$F_1(x) = F_2(x)$ 对所有 $x$ 成立。 * 备择假设 ($H_a$):两个样本来自于不同的分布。即存在至少一个 $x$ 使得 $F_1(x) \neq F_2(x)$。

2. 检验统计量 $D_{n_1, n_2}$

双样本K-S检验的统计量 $D_{n_1, n_2}$ 定义为两个样本的EDF,$F_{n_1}(x)$ 和 $F_{n_2}(x)$ 之间的最大绝对垂直距离。

$$ D_{n_1, n_2} = \sup_x |F_{n_1}(x) - F_{n_2}(x)| $$

这个统计量衡量了两个样本经验分布在所有点上的最大差异。

3. 决策规则

* 计算出检验统计量 $D_{n_1, n_2}$ 的值。 * 对于给定的显著性水平 $\alpha$,查找双样本K-S检验的临界值。该临界值依赖于两个样本的大小 $n_1$ 和 $n_2$。 * 决策:如果计算出的 $D_{n_1, n_2}$ 大于临界值,则拒绝原假设 $H_0$,认为两个样本来自不同的分布。否则,不拒绝 $H_0$。 * 同样,可以使用 p-value 进行判断。

## 优缺点与适用场景

优点: 1. 分布自由:作为{{{非参数检验}}},它不需要关于数据总体分布的任何假设,适用性强。 2. 对差异类型敏感:与只关注均值差异的{{{t检验}}}或关注方差差异的{{{F检验}}}不同,K-S检验对分布的任何差异(包括位置、尺度和形状)都很敏感。 3. 精确性:对于任意样本量,检验统计量的分布在 $H_0$ 假设下是确定的(不依赖于被检验的特定分布 $F(x)$),使其成为一种精确检验。 4. 一致性:该检验是{{{一致的检验}}},意味着随着样本量的增加,其检验能力({{{power}}})会趋向于1,能够检测出任何细微的真实差异。

缺点: 1. 对连续分布的要求:该检验理论上要求数据来自连续分布。当应用于离散数据时,检验会变得保守(p-value偏大),可能导致错误的结论。 2. 对分布尾部不敏感:K-S检验对分布中心区域的差异比对尾部的差异更敏感。最大偏差通常不会出现在分布的两个极端。对于更关心尾部差异的场景,{{{Anderson-Darling检验}}}可能是更好的选择。 3. 不提供差异信息:当检验结果拒绝原假设时,它只告诉我们分布存在差异,但没有说明差异的具体形式(例如是均值不同还是方差不同)。 4. 单样本检验的参数问题:如前所述,单样本检验中若使用从数据估计的参数,则需要进行Lilliefors修正。

## 与其他检验的比较

* 与{{{卡方拟合优度检验}}} (Chi-squared Goodness-of-Fit Test) 的比较: * 卡方检验需要将数据分组("分箱"),而分组方式是主观的,可能影响检验结果。K-S检验则利用了每个数据点的精确位置,不需分组。 * K-S检验通常在样本量较小时比卡方检验更有效。 * 卡方检验可以用于离散分布,而K-S检验主要用于连续分布。

* 与{{{Shapiro-Wilk检验}}} (Test for Normality) 的比较: * S-W检验是专门为检验{{{正态性}}}而设计的,通常在检验正态性这一特定任务上比K-S检验(即使是Lilliefors修正版)具有更高的{{{统计功效}}}。 * K-S检验则更为通用,可以检验任何指定的连续分布,而不仅仅是正态分布。