Excel实战:从原理到实现,手把手教你掌握S-W正态性检验
1. 为什么需要正态性检验做数据分析的朋友们应该都听过一个词叫正态分布它就像统计学里的黄金标准很多高级分析方法比如t检验、方差分析、回归分析都要求数据符合这个标准。但现实中的数据往往没那么听话这时候就需要先做个体检——正态性检验。我刚开始做数据分析时曾经直接用t检验分析了一组销售数据结果被导师一眼看穿问题你这数据明显右偏做t检验不合适啊后来才知道如果数据不符合正态分布却强行用这些方法得出的结论可能完全不靠谱。2. S-W检验到底是什么在所有正态性检验方法中Shapiro-Wilk检验简称S-W检验是小样本情况下的金牌裁判。它由Shapiro和Wilk在1965年提出通过计算一个神奇的W统计量来判断数据是否服从正态分布。原始版S-W检验有个小遗憾只适用于8≤n≤50的样本量。好在Royston教授后来改进了算法让检验范围扩大到12≤n≤5000这就是现在SPSS等软件内置的改进版S-W检验。我在分析一组30人的实验数据时分别用原始版和改进版做了对比测试发现两种方法的结论基本一致但改进版的计算过程确实更稳定。3. Excel实现原始版S-W检验3.1 数据准备阶段假设我们有15个产品的销售额数据单位万元12, 15, 17, 18, 20, 22, 23, 24, 25, 26, 28, 30, 32, 35, 40第一步排序处理在Excel中将数据输入A列A2:A16使用SORT(A2:A16)函数自动排序第二步计算关键参数样本量n15奇数m(n-1)/27需要查表获取系数a可从real-statistics.com获取3.2 计算W统计量在Excel中建立计算表格ix(i)x(n-i1)a_i计算项112400.51500.5150*(40-12)215350.33060.3306*(35-15)...............W统计量计算公式W [Σa_i(x_(n-i1) - x_i)]² / Σ(x_i - x̄)²具体操作在B列计算分子部分SUMPRODUCT(D2:D8, (C2:C8-B2:B8))^2在E列计算分母部分DEVSQ(A2:A16)最终W值B17/E173.3 结果判断查S-W临界值表α0.05n15得临界值为0.881。我们计算得到W0.923 0.881因此不能拒绝正态性假设。小贴士W值越接近1数据越符合正态分布。我一般把0.9作为分水岭但具体还要看样本量对应的临界值。4. 改进版S-W检验的Excel实现4.1 计算累计概率对排序后的数据计算累计概率RANK.AVG(A2,$A$2:$A$16,1)/(COUNT($A$2:$A$16)1)计算标准正态分位数NORM.S.INV(B2)4.2 计算系数a使用Royston给出的近似公式IF(ROW()2, 0.2047, IF(ROW()n, 0.2047, (NORMDIST((ROW()-3.5)/n*0.5,0,1,FALSE)-0.5)/(ROW()-3.5)/n*0.5 ))4.3 计算转换后的Z值根据公式z (ln(1-W) - μ)/σ其中μ和σ可通过查表获得在Excel中可以用近似公式计算。最终p值计算1-NORM.S.DIST(z,TRUE)5. 实战案例演示我用某电商30天的日销售额数据做了完整演示数据清洗先剔除618大促日的异常值描述统计用AVERAGE()、STDEV()看基本分布绘制Q-Q图排序数据计算理论分位数插入散点图S-W检验结果W0.956p0.32 0.05结论符合正态分布踩坑提醒有次我忘记数据排序直接计算导致W值异常偏低。后来发现排序是S-W检验的关键步骤千万不能省略6. 常见问题解答Q样本量很大时还需要做正态性检验吗A我的经验是当n200时直方图Q-Q图的组合判断可能更可靠。有次分析500个样本S-W检验反而过于敏感。Q检验结果不显著但直方图明显偏态怎么办A这种情况我通常会尝试数据转换如取对数改用非参数检验结合业务背景判断QExcel和SPSS结果不一致A确实遇到过。后来发现是SPSS默认使用改进版算法而我的Excel模板是原始版。建议超过50的样本直接用改进版。7. 效率提升技巧模板化把计算公式保存为模板我做了个带自动查表功能的版本效率提升80%数据验证用IF(AND(W0.9, p0.1),正态,非正态)自动判断动态图表连接检验结果和图表实现结果联动更新最后分享我的一个真实教训有次赶项目报告没做正态性检验就直接用t检验结果被客户质疑结论。现在我的分析流程里正态性检验永远是第一步。记住磨刀不误砍柴工这一步的时间绝对不能省
