【統計解説】Wilcoxonの順位和検定(Wilcoxon rank-sum)を直感的に理解したい。

順位に置き換えて2群を比べるWilcoxonの順位和検定について、具体的な点数の例から統計量Uの求め方と意味を追い、t検定とどこが違い、どう使い分けるのかを解説する。

まず、Wilcoxonの順位和検定を使うタイミングはざっくり以下。

  flowchart TD
    A["独立した2群を比較したい"] --> B{"平均値そのものを比較したい?<br/>t検定の仮定に大きな問題はない?"}

    B -->|"Yes"| C["t検定"]
    B -->|"No / 強い歪み<br/>外れ値の影響を避けたい等"| D["Wilcoxon rank-sum"]

    C --> E["数値そのものを利用"]
    D --> F["順位に変換して比較"]

t検定については別記事で解説。

実際には「正規分布でないなら必ずWilcoxon」という単純な使い分けではないが、ここでは直感的な理解を優先している。


具体例をもとに解説

数学のテストの点数について、A群とB群に差があるかを比較するとする。

$$ A =\lbrace 50, 60, 90 \rbrace $$$$ B =\lbrace 20, 30, 40 \rbrace $$

上記のような点数だったとする。

これについて、各サンプルに、以下のように小さい順から順位をつけていく。

値203040506090
群BBBAAA
全体順位123456
A群内での順位---123

ここでいう順位は、小さい値から $1,2,3,\dots$ と番号を振っているだけである。日常生活でいう「1位が最も上」という順位とは感覚が逆なので注意。

この2群の例は明確に順位に差があるのが見ただけでわかると思う。 この差をどのように比較・表現するのか以下で考えていく。


統計量 $U$ について

まず、「$n_A$ : $A$群のサンプル数」(今回の例だと $3$)、「$n_B$ : $B$群のサンプル数(今回の例だと $3$)」とした時、以下の $U_A$、$U_B$ という値を考えてみることにする。

  • $U_A$:$A$群のサンプルの値が $B$群のサンプルの値を上回ったペアの数
  • $U_B$:$B$群のサンプルの値が $A$群のサンプルの値を上回ったペアの数

今回は同じ値、すなわち tie(同順位) がない場合を考える。

上記について以下の式が成り立つということが重要となる。

$$ \boxed{U_A + U_B = n_A \cdot n_B} $$

以下でなぜ上式が成立するか理由を説明する。

まず、$A$群と $B$群からそれぞれ1サンプル取ってきてペアを作ることを考えた時の組み合わせ数は $n_A \cdot n_B$ である。

$A群$/$B群$$B_1 → 1位$$B_2 → 2位$$B_3 → 3位$
$A_1 → 4位$$A_1$と$B_1$$A_1$と$B_2$$A_1$と$B_3$
$A_2 → 5位$$A_2$と$B_1$$A_2$と$B_2$$A_2$と$B_3$
$A_3 → 6位$$A_3$と$B_1$$A_3$と$B_2$$A_3$と$B_3$

現在全サンプルに順位が振られており、tieがないので、必ずそれぞれの組み合わせでA群とB群に大小が生じ、「$A$が$B$より大きい」か「$B$が$A$より大きい」のどちらかになる。

$A群$/$B群$$B_1 → 1位$$B_2 → 2位$$B_3 → 3位$
$A_1 → 4位$$A_1 > B_1$$A_1 > B_2$$A_1 > B_3$
$A_2 → 5位$$A_2 > B_1$$A_2 > B_2$$A_2 > B_3$
$A_3 → 6位$$A_3 > B_1$$A_3 > B_2$$A_3 > B_3$

今回の例えは全て「$A$が$B$より大きい」になっている。

「$A$が$B$より大きい」を全て足し合わせたのが $U_A$ であり、「$B$が$A$より大きい」を全て足し合わせたのが $U_B$ であるため、$U_A + U_B = n_A \cdot n_B$ が成立する。


$U$ の計算方法

$U_A$ は以下のようにカウントする。

  • $A$群の $50$ という値を持つサンプル → $A_1$
  • $A$群の $60$ という値を持つサンプル → $A_2$
  • $A$群の $90$ という値を持つサンプル → $A_3$

としたとき、

$$ \begin{array}{r c l c l} \color{red}{(A_1の全体での順位)} & - & \color{blue}{(A_1のA群内での順位)} & = & \color{green}{(A_1より小さいBの個数)} \\[0.6em] \color{red}{(A_2の全体での順位)} & - & \color{blue}{(A_2のA群内での順位)} & = & \color{green}{(A_2より小さいBの個数)} \\[0.6em] \color{red}{(A_3の全体での順位)} & - & \color{blue}{(A_3のA群内での順位)} & = & \color{green}{(A_3より小さいBの個数)} \\[0.6em] \downarrow \text{全部足す} && \downarrow \text{全部足す} && \downarrow \text{全部足す} \\[-0.1em] \color{red}{(A群の全体での順位和R_A)} & - & \color{blue}{(A群内での順位和)} & = & \color{green}{(A群のいずれかより小さいBの総数\ U_A)} \end{array} $$

となる。

例えば $A_2=60$ について、全体での順位は $5$ 位だが、A群内では $2$ 位。つまり $5-2=3$ 個のBよりも上位にいる、という計算。 これをA群の全サンプルで計算して足し合わせる、というのが上図。

ここで、今回の例で $U_A$ と $U_B$ を計算すると、

$$ U_A = (4+5+6) - (1+2+3) = 9 $$$$ U_B = (1+2+3) - (1+2+3) = 0 $$

となる。


$U$ の意味

ここまででなんとなくわかったと思うが、今回の例では $U_A >> U_B$ となっており、極端に群間に差があることが示されている。

このように、AとBを1個ずつ取り出して比べたとき、一方がもう一方より大きくなる傾向がどの程度強いかを見る、というのがWilcoxonの順位和検定の基本の仕組み。

検定を行う際には、まず「$A$群と $B$群の分布に差がない$」という 帰無仮説 を前提とする。

帰無仮説が正しければ、AとBをランダムに1個ずつ取ったとき、Aが大きい場合とBが大きい場合は同程度になるはずなので、

$$ E(U_A)=E(U_B)=\frac{n_A n_B}{2} $$

となる。

つまり統計量 $U$ は、帰無仮説のもとでは $\frac{n_A n_B}{2}$ あたりを中心としてばらつくはず、と考える。

そして標本数が十分に大きくなると、$U$ の標本分布は正規分布に近似できる。

直感的には、多数のA-B間の比較結果が積み重なってできる統計量なので、標本数が大きくなると釣鐘型の分布に近づいていくと考えるとよい。

ただし、それぞれのA-Bペアの比較結果は完全に独立ではないため、単純に「独立な0/1の和だから中心極限定理」と説明するのは厳密には正しくない。順位和統計量には、その標本分布が漸近的に正規分布へ近づくことが数学的に示されている。

詳しくは 【統計解説】中心極限定理ってなによ? を参照。

そこで $U$ の標準偏差を計算するために分散を出す。

$\color{blue}{A群内での順位和}$ は毎回同じ(初項 $1$、公差 $1$、項数 $n_A$ の等差数列の和)の 固定値になる ので、$\color{red}{A群の全体での順位和R_A}$ と、それから定数を引いた $\color{green}{U_A}$ とは分散は同じ。なので $Var(U_A)=Var(R_A)$

ちなみにWilcoxonの順位和検定は、Mann–Whitney $U$ 検定と実質的に同じ検定 である。 順位和 $R_A$ を使って表現するか、それと一対一に対応する $U_A$ を使って表現するかという違いがある。

こっからあれやこれやして以下が導出される(その過程については式変形がだるくてわけわからんくなるのでここでは省略。気が向いたら上げる別記事参照)

tieがない場合、

$$ Var(U_A) = \frac{n_A n_B \lbrace n_A + n_B + 1\rbrace}{12} $$

標準偏差は以下。

$$ SD(U_A) = \sqrt{Var(U_A)} $$

同じ値が複数存在するtieがある場合は、分散に補正が必要となる。

ここから具体例で説明すると、$n_A = 10$, $n_B = 10$ のとき、

$$ \frac{n_A n_B}{2} = 50 $$

である。

$A$群と $B$群の分布に差がない場合、$U$ は $50$ を中心にばらつく。

正規分布で近似するなら、およそ95%の値は平均から約 $2SD$ 以内に収まる。

なので、

$$ SD=\sqrt{\frac{10\cdot10 \lbrace 10 + 10 + 1\rbrace }{12}} \approx 13.2 $$

であることから、およそ95%の範囲は

$$ 50-2\times13.2 \le U \le 50+2\times13.2 $$

すなわち、

$$ 23.6 \lesssim U \lesssim 76.4 $$

程度になる。

しかし、例えば $U=80$ だったとする。

これを標準化すると、

$$ Z=\frac{80-50}{13.2}\approx2.27 $$

となる。

わかりやすくいうと、

「帰無仮説で予想される中心から、約 $2.27SD$ 離れたところに実測値があった」

ということ。

$|Z|=2.27$ 以上に極端な値が出る確率を標準正規分布から両側で計算すると、

$$ p\approx0.023 $$

となる。

ここで $p=0.023$ というのは、

「A群とB群に本当は差がない」と仮定した場合に、今回観測したものと同程度か、それ以上に極端な $U$ が偶然得られる確率が約2.3%

という意味である。

「A群とB群に差がない確率が2.3%」という意味ではない ので注意。

こうなってくると、

「A群とB群に差がない世界では、今回のような極端な結果はかなり珍しい」

と考えることができる。

そこで、あらかじめ有意水準を $5%$ としていたなら、

$$ p=0.023<0.05 $$

なので帰無仮説を棄却し、

A群とB群の分布には差があることを示す統計学的な証拠が得られた

と判断する、という話である。


t検定との違い

t検定Wilcoxon rank-sum
主に使う情報実際の数値順位
主に比較するもの平均値分布・順位の偏り
正規性などの仮定t検定の種類や標本数による元データの正規性は不要
外れ値影響を受けやすい比較的影響を受けにくい
情報量数値そのものを使う順位に変換するので一部失う

なお、「Wilcoxon順位和検定は中央値を比較する検定」と説明されることがあるが、これは常に正しいわけではない。

厳密には2群の 分布の位置関係 を順位から検定している。2群の分布の形が同じで、位置だけがずれていると考えられる場合には、「中央値の違いを見る」と解釈しやすくなる。

Hugo で構築されています。
テーマ Stack は Jimmy によって設計されています。