单样本Wilcoxon符号秩检验

所属分类:差异性分析

这个方法是做什么的

「单样本T检验」的非参数替代:把每个观测减去你指定的检验值得到一列差值,按差值的绝对值排名次,再看正差值那一侧的秩和 W⁺ 是不是明显偏离随机情况该有的样子。因为只用到差值的次序与符号,一个极端观测再离谱也只占最大的那一个名次,不会像 t 检验那样按它的数值大小放大影响。检验值同样必须来自数据之外,而且是必填项。

主结果先给一行简表(检验值、N、中位数、Z、p),再给一张秩和分解表:参与排秩的观测数、正秩和 W⁺、负秩和 W⁻、检验统计量 W = min(W⁺, W⁻)、带符号的 Z(正号表示样本整体高于检验值)与双侧 p,并给出 W⁺ + W⁻ 的恒等式供自检。效应量卡给 r = Z/√n、秩二列相关 r_rb = (W⁺−W⁻)/(W⁺+W⁻),以及唯一带原始单位的 Hodges–Lehmann 位移估计及其分布无关 95% 置信区间——它估的是“总体中位数 − 检验值”。第一张卡把差值的对称性、零差值与并列的数量单独列出来;最后一张卡给出方法部分与结果部分的表述模板。

需要准备什么数据

  • 放入 [定量] 变量:1 个,定量变量(数值)

数据要求

  • 数据表至少 6 行。
  • 单列缺失率不超过 20%。
  • 不接受取值全都一样的列(零方差列没有可分析的变异)。

以上条目由系统从该方法的校验规则直接生成,与上传数据时的实际拦截规则一致。

什么时候用它

  • 指标明显偏态或含个别异常读数,要跟一个外部标准值比
  • 变量本身是等级评分(1~7 分量表),加减只有次序意义
  • 样本量小到正态性根本无从判断
  • 不希望少数极端观测主导结论
  • 已经知道数据有厚尾或截尾,想要一个不依赖分布形状的结论

前提有三条:观测互相独立(由抽样设计保证,任何检验都查不出来);变量可求差、可排序;观测值与检验值之差的分布关于其中位数对称——这是符号秩检验唯一的实质分布前提,第一张卡用 D'Agostino 偏度检验专门考察,那一行标了 ★。另外有效观测至少 6 个,否则双侧 p 在 α=0.05 下根本不可能达到显著;缺失率上限是 20%。

什么时候不要用它

  • 数据近似正态且样本量不算小:用「单样本T检验」。数据确实正态时符号秩检验的渐近相对效率约 0.955,效能略低;更重要的是 t 检验给的是有单位、读者一看就懂的均值差。
  • 手上是同一批对象的两列测量:用「配对样本Wilcoxon检验」。你也可以自己相减成一列差值、检验值填 0 跑本模块——数学上就是同一个检验——但会丢掉两次测量各自的描述统计与配对方向的交代,而且两个模块的 Z 口径不同(见下),p 值会有细微出入。
  • 要比的是两批不同对象:用「独立样本 Mann-Whitney U 检验」,那边比较的是两组混排后的秩分布,与本方法的符号秩不是一回事。
  • 同一批对象测了三次及以上:用「多配对样本Friedman检验」,反复两两比较会让假阳性膨胀。
  • 变量是二分类(合格 / 不合格),求差只剩 −1、0、1,秩里没有信息:用「二项式检验」。
  • 差值分布严重不对称,而你又必须把结论落到中位数上:符号秩检验做不到,需要前提更弱、只用符号不用秩的符号检验。它等价于对“高于检验值的观测占比是否等于 0.5”做一次「二项式检验」——第一张卡下方那行“高于检验值 113 例、低于 37 例、等于 0 例”正好是它要的输入。代价是完全丢掉差值大小的信息,效能进一步下降。

容易误读的地方

  • “非参数”不等于“没有前提”。 这个检验有一条实打实的分布前提:差值分布关于其中位数对称。第一张卡标 ★ 的 D'Agostino 偏度检验就是查它的。它被拒绝时检验本身依然有效、p 值仍然可用,但结论必须改述为“差值的分布位置偏离 0”,不能写成“中位数偏离检验值”。同一张卡上面两行的 Shapiro-Wilk 与 K-S 不是前提检验——它们显著恰恰是你选这个方法而不是 t 检验的理由,看到星号别以为方法用错了。至于“观测互相独立”,那一条由抽样设计决定,数据事后怎么查都查不出来:把同一批人测两次当成两批独立观测,是这类方法最常见的误用。
  • 它比较的不是中位数,是差值的符号秩分布。 只有对称成立时,“总体中位数等于检验值”和“W⁺ 落在其零分布中心”才是同一件事。分布越偏,直接算出来的样本中位数和 Hodges–Lehmann 位移这两个量差得越远——前者只是把观测排序取中间那个,后者取的是全部 Walsh 平均的中位数,和检验统计量同源。论文里该报的是 H-L 估计及其置信区间;描述统计里那个中位数是描述,不是这次检验的结论对象。
  • “H-L 的置信区间不含 0”与“p<0.05”并不保证一致。 报告的表注如实写明了原因:检验走 Pratt 口径(零差值一并参与排秩、其秩不计入 W⁺/W⁻),而区间的临界位次取自无结无零的连续型零分布。零差值或并列较多时,确实可能出现“区间含 0 但 p 显著”这类看着矛盾的组合。遇到这种情况不要挑对自己有利的那个报,应当并列报告,并以置信区间判断差异的实际量级——它是这份报告里唯一带原始单位的区间证据。顺带一提,r 与 r_rb 的置信区间需要自助法才能给,本模块不做估计,那两格是“-”,不是漏算。
  • 检验值必须是外部参考值,而且它是必填的。 用本次样本自己算出的均值或中位数当检验值,检验就变成了“样本跟自己比”,p 值失去意义。合法的检验值是临床阈值、国标限值、合同约定值、历史基准这类在你看数据之前就已确定的量。旧版那个“自动取检验值”的开关已经下线,请求里还带着它会直接报错而不是静默按老行为跑——就是为了堵这个口子。
  • 零差值多的时候,名义样本量会明显高估实际信息量。 恰好等于检验值的观测不携带任何方向信息。Pratt 口径让它们参与排秩,却把它们的秩从 W⁺/W⁻ 里扣掉,同时从零分布的均值与方差中扣除相应部分。所以 150 个观测里若有 60 个恰好等于检验值,这次检验真正依据的信息远不到 150 个观测的量,而 r = Z/√n 的分母 n 用的仍是含零差值的排秩个数。第一张卡和秩和分解表都会列出零差值个数,以及高于、低于检验值各多少例,跑完先看这三个数。
配对数据与独立数据的区别
概念图1 配对数据与独立数据的区别
左边是同一批对象测两次,分析的是每个人自己的差值,个体差异被抵消掉;右边是两拨不同对象各测一次,分析的是两组的整体水平,个体差异留在组内。数据是哪一种,决定了该用哪一族方法——摆错了不会报错,只会悄悄换掉你在检验的东西。
为什么不能用多次两两检验代替整体检验
概念图2 为什么不能用多次两两检验代替整体检验
4 组要做 6 次两两检验,每次 5% 的假阳性概率累积到 26.5%。方差分析先用一次整体检验把这个概率压回 5%,显著之后再做自带校正的事后比较——绕开整体检验直接两两比,等于把这笔账藏了起来。

报告里有什么

  1. 输出结果一:数据概览与前提检验
  2. 输出结果二:单样本Wilcoxon检验主结果表
  3. 输出结果三:数据分布可视化
  4. 输出结果四:效应量
  5. 输出结果五:结论与学术表述
血清酶活性(U/L)
图1 血清酶活性(U/L)
此图通过直方图与正态曲线的叠加,直观地展示了数据的分布形状,并可与理想正态分布进行比较。

在线统计分析平台 · 233 种分析方法 · AI 智能解读

在线使用
使用教程