外观
判定数据正态性的 11 种方法
11 Ways to Determine Data Normality
许多机器学习模型在存在正态分布时表现假设(或更好)。例如:
- 线性回归假设残差服从正态分布。
- 有时,把数据变换为正态分布会带来好处。
- 线性判别分析(LDA)是在正态分布假设下推导出来的,等等。因此,数据科学家了解检验正态性的方法极其重要。下面的图示描绘了 11 种检验正态性的常用方法。
- 本章我们就来理解这些方法。

- 直方图
- QQ 图(我们会在本书的绘图部分讲解)。
- KDE 图
- 小提琴图
虽然绘图通常可靠,但它是一种主观方法,容易出错。因此,我们还必须了解可靠的定量度量。
- Shapiro-Wilk 检验:
- 利用观测数据与正态分布下的期望值之间的相关性来计算一个统计量。
- p 值表示如果数据服从正态分布时观察到这种相关性的似然。
- 较高的 p 值表明服从正态分布。2) KS 检验:
- 度量观测分布与正态分布的累积分布函数(CDF)之间的最大差异。
- 输出的统计量基于两个 CDF 之间的最大差异。
- 较高的 p 值表明服从正态分布。3) Anderson-Darling 检验:
- 度量观测数据与正态分布下期望值之间的差异。
- 着重考察分布尾部的差异。
- 这使它在检测极端值处的偏离时尤为有效。
- Lilliefors 检验:
- 它是 KS 检验的一种变体。
- 当参考分布的参数已知时,KS 检验是合适的。
- 如果参数未知,则推荐使用 Lilliefors。
- 入门参考:Statsmodel 文档。
距离度量是另一种可靠且更直观的检验正态性的方式,但用起来可能有点棘手。问题在于,一个单独的距离值需要更多上下文才能解读。

例如,如果两个分布之间的距离是 5,这算大还是小?我们需要更多上下文。我倾向于这样使用这些度量:
- 求观测分布与多个参考分布之间的距离。
- 选择与观测分布距离最小的那个参考分布。
下面是几种常见且有用的距离度量:1) Bhattacharyya 距离:

- 度量两个分布之间的重叠。
- 这种“重叠”常被理解为两个分布之间的接近度。
- 选择与观测分布 Bhattacharyya 距离最小的分布。2) Hellinger 距离:
- 它的用法与 Bhattacharyya 距离十分相似。
- 区别在于 Bhattacharyya 距离不满足三角不等式。
- 而 Hellinger 距离满足。
- KL 散度:

- 它严格来说并不算“距离度量”,但可以用于此处。
- 度量用一个分布近似另一个分布时所损失的信息。
- 损失的信息越多,KL 散度越大。
- 选择与观测分布 KL 散度最小的分布。KL 散度在 t-SNE 算法中被用作损失函数。