ウィルコクソンの符号順位検定

ウィルコクソンの符号順位検定(Wilcoxon signed-rank test)は、対応のある標本対に対するノンパラメトリック検定法である。例えば薬剤投与前と投与後の体重に変化があったかどうかを検定できる。ウィルコクソンの符号順位検定は標本対の差に着目して、その差がゼロかどうかを検定する方法である。

n 対の標本 xi, yi (i = 1, 2, ..., n) がある。この n 対の標本に対して差 d を計算する。

di=yixi(i=1,2,,n)

d はある母集団に由来し、その分布の中央値 θ に対して対称であると仮定する。このとき、ウィルコクソンの符号順位検定の帰無仮説は次のようになる。

H0:θ=0

この帰無仮説に対して検定を進めるためには、まず、すべての di の絶対値を昇順に並べて、順位をつける。なお、di = 0 を除く。続けて、 xi > yi の標本の順位の和を計算し Rx > y とし、 xi < yi の標本の順位の和を計算し Rx < y とする。たとえば、

x3.33.23.43.03.13.03.2
y3.33.13.33.42.63.64.2
d0-0.1-0.10.4-0.50.61.0
順位-1.51.53456

のとき、 Rx > y および Rx <y は次のように計算される。

Rx>y=1.5+1.5+4=7 Rx<y=3+5+6=14

次に、Rx > y および Rx <y のうち小さい方を T 統計量とおく。サンプルサイズ n が小さい時はウィルコクソンの符号順位検定用の統計数値表を利用して棄却限界値をとる。サンプルサイズ n が大きいとき、目安として xi ≠ yi の組数が 20 前後よりも大きいとき、T 統計量を次のように標準正規分布に近似させて棄却限界値を決める。

μT=Tn(n1)4 σT=n(n+1)(2n+1)24 Z=TμTσTN(0,1)

R によるウィルコクソンの符号順位検定

R でウィルコクソンの符号順位検定を行うには、coin パッケージ中の wilcoxsign_test 関数を使用する。次は、乱数を使用して、分布の形は同じだが、 一方の分布の値が他方よりも大きくなるように標本を生成して、検定を行う例である。

library(coin)
x <- c(rnorm(10, 60, 10), rnorm(20, 60, 20))
y <- x + rnorm(length(x), 10, 6)

wilcoxsign_test(x ~ y, distribution = 'exact')
##   Exact Wilcoxon-Pratt Signed-Rank Test
## 
## data:  y by x (pos, neg)
##    stratified by block
## Z = -4.7821, p-value = 1.863e-09
## alternative hypothesis: true mu is not equal to 0