前面我们介绍了小样本正态性检验用SW检验,大样本正态性检验用KS检验,那么是不是正态性检验的方法都齐活了?还没有,因为正态性检验方法里面还有一位重量级嘉宾,那就是Anderson-Darling检验,我们简称AD检验。
| 01 什么是AD检验? |
可能很少有同学听说过AD检验,因为在SPSS等常用软件里面没有这个检验,那么什么是AD检验呢?简单来说就是给数据的累积分布曲线做体检,而且它最关心的是头部和尾部这两个关键部位是否健康。AD检验和KS检验一样,它也是拿经验累积分布函数与理论累积分布函数逐点比较,但它不是只取最大距离,而是对每个点的偏离做一个加权积分,公式为:
其中n为样本量,F(x)为理论分布的CDF,正态检验时用样本均值与标准差估计。看公式可能不太好理解,通俗一点AD检验是全面扫描+重点关照,它把每个点的偏离都算进去,同时给两端的尾部数据更高的话语权,计算出来的A²统计量越大,说明数据与理论分布的偏离越严重。
| 02 为什么要用AD检验? |
AD检验的核心价值在于它的敏感且均衡,相比SW检验只在极小样本下占优,相比KS检验对整体偏离更平等对待,AD检验在中等样本量下统计效能更高,尤其对分布尾部的偏离极为敏感,而尾部恰恰是很多参数检验最容易出问题的地方。正因为有如上优势,在科研实战中,AD检验常常被称为全能选手,在如下场景有广泛应用:
- 中等样本正态验证:比如你收集了80份问卷数据,SW检验觉得太小、KS检验觉得不够大,这时候AD检验恰好是最佳区间。
- 尾部敏感性检验:金融数据的极端收益、医学指标的异常值,这些尾部特征对后续分析影响很大,AD检验能第一时间捕捉到。
- 通用分布拟合:AD检验不仅适用于正态分布,还支持对数正态、指数分布、Weibull分布等多种理论分布的拟合优度检验,适用面比SW更广。
| 03 如何进行AD检验? |
AD检验用于连续变量,对分类数据不适用,需要预先指定要检验的理论分布,从n=8起即可使用,小到几十、大到上万都能胜任。但是如何进行AD检验呢?前面我们说过AD检验在SPSS中没有直接的菜单入口,因此推荐用R或者Python来完成,我们以R为例,代码如下:
# 加载包(需提前安装nortest包)install.packages("nortest")library(nortest)# 输入数据data <- c(2.1,1.8,2.5,2,1.9,2.2,2.4,1.7,2.3,2.6,1.6,2.7,2.8,1.5,2.9,3,1.4,3.1,3.2,1.3,2.1,1.8,2.5,2,1.9,2.2,2.4,1.7,2.3,2.6)# AD正态性检验ad.test(data)
代码很简单,加载相关包以后,输入数据,然后直接调用方法即完成AD检验。运行后结果也很简洁,如下图:
p值为0.793,大于0.05,因此数据服从正态分布。
| 04 正态性检验总结 |
加上前面的KS检验和SW检验,常用的正态性检验的方法已基本涵盖。我们对这三个方法进行对比,如下图:
总结一下三种检验的选择策略:n<50看SW检验,n=50到几百看AD检验,n>500看KS检验,如果你不想记这么多,AD检验是个不错的默认选择,它在绝大多数样本量下都能稳定发挥。以上就是AD检验的全部内容,觉得有用先收藏,顺手点个赞,有问题或者跑数据遇到报错?去评论区告诉我,让你少走弯路早点毕业!