统计百科 ·
正态性怎么判断?Shapiro-Wilk、K-S检验与偏度峰度完整指南
统计百科:系统讲解正态性检验的四条路径——Shapiro-Wilk检验、K-S检验、偏度峰度指标与QQ图目视法,分析大样本下统计检验失灵的根源,给出小/中/大样本的实用判断策略与可直接抄进论文的APA 7th报告句式。
正态性检验几乎出现在每一份量化论文的方法章节,但很多研究者只会套一个 Shapiro-Wilk p 值,却不知道大样本时 p < .001 几乎是必然结果,与数据"是否足够正态"毫无关系。本文系统梳理四条判断路径的原理、适用范围与失效条件,并给出小/中/大样本下的实用决策树,以及可直接抄进论文的 APA 7th 规范报告句式。
你在正态性判断上可能踩过这些坑
导师或审稿人最常见的反馈:
- "Shapiro-Wilk p = .032,说明数据不正态,换非参数检验"——样本 N = 500 时这句话几乎毫无意义
- "K-S 检验通过了,所以数据正态"——你用的是哪个 K-S?Lilliefors 校正了吗?
- "偏度 = 0.8,峰度 = 3.2,符合正态"——绝对值界限是怎么定的,|skew| < 2 还是 < 1?
- "QQ 图看起来差不多直"——这句话太主观,审稿人会要求量化指标
本文的目标:让你在论文方法章节能用一段规范文字说清楚"我做了哪些正态性检验、结论是什么、为什么这样判断"。
一、为什么要检验正态性
大多数参数统计方法(t 检验、ANOVA、Pearson 相关、线性回归残差分析)都有"数据(或残差)服从正态分布"这一前提假设。违反该假设时:
- t 检验的 Type I 错误率可能偏离名义 alpha = .05
- 线性回归的置信区间和假设检验不再精确
- ANOVA 在严重偏态时功效下降
但"检验正态性"本身不是目的,目的是判断数据是否足够接近正态,参数方法是否适用。这一区别决定了判断逻辑:当 N 很大时,参数方法因中心极限定理(CLT)天然具有稳健性,此时正态性假设的重要性大幅下降。
二、四条判断路径
路径一:Shapiro-Wilk 检验(S-W 检验)
原理
S-W 检验(Shapiro & Wilk, 1965)基于"如果数据来自正态分布,则有序统计量与正态分位数之间应存在线性关系"这一思想,计算相关系数的平方(W 统计量)。W 越接近 1,越符合正态;W 显著偏离 1(p < .05)则拒绝正态假设。
$W = \frac{\left(\sum_{i=1}^n a_i x_{(i)}\right)^2}{\sum_{i=1}^n (x_i - \bar{x})^2}$
其中 $x_{(i)}$ 是有序统计量,$a_i$ 是由正态分布期望值和协方差矩阵导出的系数。
适用范围
- 最优区间:N = 3 ~ 50。文献一致认为此区间内 S-W 检验功效最高,是首选方法。
- 可用区间:N = 3 ~ 5000(多数软件实现),但 N > 50 时需结合其他指标解读。
- N > 200:p 值几乎必然 < .05,即使数据仅有轻微偏态——此时 S-W 统计量失去实际意义。
报告格式
Shapiro-Wilk 检验结果显示数据[符合/不符合]正态分布,W(N) = X.XXX,p [= .XXX / > .05 / < .001]。
示例:
Shapiro-Wilk 检验结果显示各组因变量得分符合正态分布假设,W(45) = .961,p = .143。
路径二:Kolmogorov-Smirnov 检验(K-S 检验)
原理与两种版本
K-S 检验通过比较样本的经验累积分布函数(ECDF)与理论正态分布的 CDF 之间的最大距离 D 来做判断。
$D = \sup_x |F_n(x) - F_0(x)|$
关键区别:正态性检验中必须使用 Lilliefors 校正版本(Lilliefors, 1967),而非原始 K-S 检验。原始 K-S 检验要求已知总体均值和方差,在正态性检验中几乎从不适用。SPSS 默认输出的"Kolmogorov-Smirnov"即已自动应用 Lilliefors 校正。
适用范围与局限
- 适用范围:N = 20 ~ 1000(N < 20 时功效极低,不推荐)
- 对分布尾部偏离的敏感性低于 S-W 检验,检测轻微偏态的功效较弱
- N > 100 后同样受大样本失灵问题影响,p 值变得过于敏感
- 综合来看,S-W 检验在正态性检验中几乎全面优于 K-S 检验(Razali & Wah, 2011);K-S 检验更多用于比较两组分布是否相同(双样本 K-S 检验),而非单样本正态性检验。
报告格式
Kolmogorov-Smirnov 检验(Lilliefors 校正)结果显示数据[符合/不符合]正态分布,D(N) = X.XXX,p [值]。
路径三:偏度与峰度指标
计算公式与参考值
正态分布的理论偏度(skewness)= 0,峰度(kurtosis)= 0(使用超额峰度定义,即峰度 - 3)。
| 指标 | 符号正态参考值 | 轻微偏离 | 中等偏离 | 严重偏离 |
|---|---|---|---|---|
| 偏度 | 0 | skew | < 1 | |
| 超额峰度 | 0 | kurt | < 1 | |
| skewness/SE | 0 | < 1.96 | 1.96 ~ 3.29 | > 3.29 |
注意软件差异:
- SPSS、R(
e1071包)、Stata 默认报告的是超额峰度(excess kurtosis),正态期望值 = 0。 - Excel 的
KURT()函数同样报告超额峰度。 - 部分教材将峰度定义为 $\mu_4/\sigma^4$,正态期望值 = 3;若使用此定义,判断标准为峰度是否接近 3。
- 报告时须说明使用的是哪种定义,避免混淆。
标准误法(适合中等样本)
偏度和峰度的标准误可由以下公式近似:
$SE_{skew} \approx \sqrt{\frac{6}{N}}, \quad SE_{kurt} \approx \sqrt{\frac{24}{N}}$
若 |skewness / SE_skew| < 1.96,则在 .05 水平不显著偏离正态。此法在 N = 50 ~ 300 时比较合理。
适用场景
偏度峰度法有一个统计检验无法替代的优势:它能直接量化偏离方向和程度,便于解释数据的形态特征,在大样本中尤其有价值(此时统计检验会拒绝零假设,但偏度 = 0.3 的数据对参数分析几乎没有影响)。
路径四:QQ 图(Q-Q Plot)目视法
什么是 QQ 图
QQ 图(Quantile-Quantile Plot)横轴为理论正态分位数,纵轴为样本实测分位数。若数据完全正态,散点应落在 y = x 对角线上;偏离越大,说明数据与正态分布的差距越大。
常见形态解读:
| 偏离模式 | 含义 |
|---|---|
| 整体贴近对角线 | 数据接近正态,参数方法适用 |
| 两端上翘(S形,上凸) | 正偏态(右偏),有长右尾 |
| 两端下弯(S形,下凹) | 负偏态(左偏),有长左尾 |
| 两端高于对角线(重尾) | 峰态偏高(leptokurtic),尾部概率大于正态 |
| 中段偏离明显 | 可能有众数或双峰 |
QQ 图的局限与补充
QQ 图是图形化诊断工具,而非统计检验。不同研究者对"贴近程度"的主观判断可能不一致。论文中应将 QQ 图与数值指标(S-W 检验、偏度峰度)结合报告,而非单独依赖视觉判断。
三、大样本检验失灵:原理与应对
这是正态性检验中最重要也最常被忽视的问题。
为什么大样本时 p < .001 几乎是必然?
统计检验的本质是:在零假设(数据完全正态)为真时,观测到当前数据或更极端情形的概率。随着 N 增大,检验对微小偏离的敏感性呈指数级增强:
$\text{检验功效} \propto N \cdot \delta^2$
其中 $\delta$ 是真实分布与正态分布的偏离量。即使 $\delta$ 极小(例如偏度 = 0.15,实践上完全可忽略),当 N = 1000 时,S-W 检验的功效可接近 1——几乎必然 p < .05。
一个直观例子:
- N = 30,偏度 = 0.5 → S-W p = .180(不拒绝正态)
- N = 200,偏度 = 0.5 → S-W p = .014(拒绝正态)
- N = 500,偏度 = 0.3 → S-W p = .003(拒绝正态)
- N = 500,偏度 = 0.3 → 中心极限定理已保证均值近似正态,t 检验/ANOVA 结论可靠
结论:大样本数据在实践意义上"足够正态",参数方法完全适用,但统计检验仍然会报告 p < .05。
大样本时的正确应对
- 报告 S-W 或 K-S 统计量和 p 值(合规要求)
- 同时报告偏度和峰度(|skew| < 2 且 |kurt| < 7 为 West, Finch & Curran, 1995 推荐的实践性标准)
- 援引中心极限定理说明参数方法的适用性
- 可附 QQ 图作为辅助视觉证据
四、判断决策树:按样本量选策略
N < 30(小样本)
├─ 首选 Shapiro-Wilk 检验(功效最高)
├─ 结合 QQ 图目视
└─ p > .05 且 QQ 图无明显偏离 → 假设成立
p < .05 或 QQ 图明显偏离 → 考虑非参数方法
30 <= N <= 200(中等样本)
├─ Shapiro-Wilk 检验(主要证据)
├─ 偏度峰度指标(|skew| < 2, |kurt| < 7)
└─ 两者一致 → 结论可靠
两者不一致 → 偏度峰度优先,说明原因
N > 200(大样本)
├─ 报告 S-W 或 K-S(合规,但 p 值仅供参考)
├─ 偏度峰度作为主要判据(|skew| < 2, |kurt| < 7)
├─ QQ 图辅助
└─ 援引中心极限定理 → 参数方法通常适用
违反正态性时的选项
| 情况 | 推荐处理 |
|---|---|
| 轻微偏态( | skew |
| 中等偏态,N < 30 | Bootstrap 置信区间 或 非参数替代方法 |
| 严重正偏态(如收入、反应时) | 对数变换后重检;或使用 Mann-Whitney、Kruskal-Wallis |
| 双峰分布 | 首先检查分组来源,考虑分层分析 |
| 极端离群值导致偏态 | 检查并处理离群值后重检正态性 |
五、在 ChatSRS 一句话完成正态性检验
打开 chatsrs.com,上传数据后输入:
"对变量 [变量名] 做正态性检验:输出 Shapiro-Wilk W 统计量和 p 值、Kolmogorov-Smirnov D 统计量(Lilliefors 校正)和 p 值、偏度和峰度(含各自标准误)、QQ 图;根据样本量自动给出是否满足正态性假设的结论,并输出符合 APA 7th 格式的方法章节报告段落。"
ChatSRS 会自动识别样本量,对大样本额外补充中心极限定理说明,并给出是否建议使用参数方法的最终建议。
六、APA 7th 规范报告句式(可抄进论文)
场景一:小样本,S-W 通过(p > .05)
在参数检验前,对各组[因变量名]进行了正态性检验。
Shapiro-Wilk 检验结果显示各组得分符合正态分布假设,
实验组 W([n1]) = X.XXX,p = .XXX;
对照组 W([n2]) = X.XXX,p = .XXX(均 p > .05),满足 t 检验的正态性前提。
填入数值示例:
在参数检验前,对两组焦虑量表总分进行了 Shapiro-Wilk 正态性检验。结果显示实验组 W(28) = .953,p = .231,对照组 W(30) = .961,p = .318,两组得分均符合正态分布假设(p > .05),满足独立样本 t 检验的前提。
场景二:中等样本,S-W 不显著,偏度峰度正常
正态性检验结果显示各组[因变量]数据符合正态假设,
Shapiro-Wilk W([N]) = X.XXX,p = .XXX;
偏度 = X.XX(SE = X.XX),超额峰度 = X.XX(SE = X.XX),
均在可接受范围内(|skew| < 2,|kurt| < 7;West 等,1995)。
场景三:大样本,S-W 显著但偏度峰度可接受(最常见情形)
由于样本量较大(N = [N]),Shapiro-Wilk 检验对微小偏离高度敏感,
结果显示 W([N]) = X.XXX,p [< .001],统计上拒绝正态假设;
然而,偏度 = X.XX(SE = X.XX)和超额峰度 = X.XX(SE = X.XX)
均在 West 等(1995)推荐的实践性界限内(|skew| < 2,|kurt| < 7),
QQ 图亦无明显系统性偏离(见图 X)。根据中心极限定理,
在此样本量下,参数统计方法仍具有足够稳健性(Field, 2018),故保留参数分析。
场景四:违反正态性,改用非参数方法
Shapiro-Wilk 检验结果显示[组名]数据违反正态假设,
W([n]) = X.XXX,p = .XXX;偏度 = X.XX,存在[正/负]偏态。
鉴于样本量较小且数据分布偏态明显,改用 Mann-Whitney U 非参数检验
替代独立样本 t 检验进行组间比较。
方法章节通用说明(可直接插入)
所有参数检验前均以 Shapiro-Wilk 检验评估因变量的正态分布假设,
同时报告偏度和峰度作为辅助指标;对于 N > 200 的变量,
结合中心极限定理及偏度峰度的实践性标准(West 等,1995)综合判断。
统计分析使用 ChatSRS(SPSS + R + Stata 三引擎),显著性水平设为 alpha = .05。
七、各软件输出解读对照
不同软件对正态性检验的默认输出格式不同,以下是常见对应关系:
| 软件 / 工具 | S-W 输出位置 | K-S 版本 | 峰度定义 |
|---|---|---|---|
| SPSS | Analyze > Descriptive Statistics > Explore | Kolmogorov-Smirnov(含 Lilliefors 校正) | 超额峰度(正态 = 0) |
R(shapiro.test()) | 直接输出 W 和 p | ks.test() 为原始版,nortest::lillie.test() 为 Lilliefors | e1071::kurtosis() 超额峰度 |
| Stata | swilk 命令 | ksmirnov | summarize, detail 报告 kurtosis(正态 = 3) |
| ChatSRS | 自动检测,统一输出三种结果 | 自动应用 Lilliefors | 统一报告超额峰度(正态 = 0) |
Stata 用户注意:Stata summarize 报告的峰度期望正态值为 3(非超额峰度),若要换算为超额峰度,需减去 3。论文中务必说明所用定义。
常见 FAQ
Q:Shapiro-Wilk 和 K-S 检验结果不一致怎么办?
A:S-W 检验在几乎所有情况下功效都高于 K-S 检验(尤其是小样本),因此当两者结论不一致时,优先以 S-W 结果为准。K-S 检验对分布中段更敏感而非尾部,更容易漏检轻微偏态。如果 S-W 显示 p > .05 而 K-S 显示 p < .05,通常是因为 K-S 对分布中段更敏感而非尾部,此时以功效更高的 S-W 结果为准,可说明"以功效更高的 Shapiro-Wilk 检验为准"。反之若 S-W 拒绝而 K-S 未拒绝,应重视 S-W 的结论并结合偏度峰度综合判断。
Q:偏度和峰度的"可接受范围"到底用哪个标准?
A:文献中有多个版本,常见的有:(1) Hair 等(2010):|skew| < 2,|kurt| < 7;(2) George & Mallery(2010):|skew| < 2,|kurt| < 2;(3) West 等(1995):|skew| < 2,|kurt| < 7(与 Hair 一致)。推荐使用 West 等(1995)标准(|skew| < 2,|kurt| < 7),这也是结构方程建模领域引用最广泛的标准。无论使用哪个标准,论文中必须明确引用文献,不能只写"偏度和峰度在正常范围内"而不注明依据。
Q:论文方法章节一定要报告正态性检验吗?
A:视情况而定。若使用 t 检验、ANOVA、Pearson 相关、线性回归等参数方法,正态性(或残差正态性)是前提假设,大多数期刊期望在方法章节说明如何验证该假设。使用非参数方法(Mann-Whitney、Kruskal-Wallis、Spearman 相关等)时无需报告。使用回归时,检验的对象是残差的正态性,而非原始变量的正态性——这是另一个常见混淆点。
Q:我的数据 N = 800,S-W p < .001,但偏度只有 0.4,峰度 0.6,该怎么写?
A:这是大样本"检验敏感性过高"的典型情形。正确写法参见上文"场景三"模板:报告 S-W 统计量(合规),同时报告偏度 = 0.4(SE = 0.087)和超额峰度 = 0.6(SE = 0.173)均在 West 等(1995)界限内,援引中心极限定理说明参数方法适用。这是国际顶刊认可的标准处理方式。
Q:QQ 图需要附在论文里吗?
A:不强制,但推荐附图或放补充材料。APA 格式下,若方法章节仅靠文字描述正态性,编辑和审稿人有时会要求提供 QQ 图作为佐证。正文可写"QQ 图显示数据点基本落于参考线附近(见附录图 A1)",将图放附录以节省正文篇幅。ChatSRS 会自动生成符合出版标准分辨率(300 dpi)的 QQ 图,可直接用于投稿。
相关阅读
- 描述统计的 APA 7th 报告写法 — 均值、标准差、置信区间格式模板
- t 值的 APA 7th 报告写法 — 自由度、效应量、独立/配对模板全解
- F 值的 APA 7th 报告写法 — F(df1,df2)格式、效应量 eta 平方、报告模板全解
- 统计显著性与 P 值完全指南
本文首发于 ChatSRS 官方博客。如有问题或反馈,欢迎在 ChatSRS 站内 [用户中心 -> 帮助与反馈] 联系我们。