Wilcoxonの符号付き順位検定の正規分布近似
井口豊(生物科学研究所,長野県岡谷市)
最終更新:2024 年 1 月 16 日
ウィルコクソンの符号付き順位検定(Wilcoxon signed-rank test)は,標本サイズが大きくなると,検定統計量を標準化して,標準正規分布を用いて検定することができる。いわゆる Z 検定になる。統計ソフトによっては,標本サイズが小さくても Z 検定となっている場合があるので注意が必要である。自分が使う統計ソフトの仕様をきちんとチェックすべきなのである。同様の問題に関しては, Steel-Dwass 検定に関する以下の解説ページでも触れた。
なお,ウィルコクソンの符号付き順位検定は,対応ある 2 群の中央値検定として用いられるが,それは,その 2 群の差データの分布が対称的であることを仮定している。以下のページ参照
統計解析ソフト R の wilcox.test 関数の場合は,標本サイズが 50 以上になると正規近似されるようになる(参照: wilcox.test マニュアル)。ここでは,それを確認してみよう。
R の場合,検定統計量は V として出力される。しかしながら,これでは分散 variance と紛らしいので,ここでは,検定統計量を W とする。
標本サイズを n とすると,それが大きくなるにつれ,検定統計量 W は,次のような平均 E,分散 V の正規分布に近づく。
\begin{eqnarray} E=\frac{n(n+1)}{4} \end{eqnarray} \begin{eqnarray} V=\frac{n(n+1)(2n+1)}{24} \end{eqnarray}したがって検定統計量 W は ,平均 0,分散 1 の標準正規分布に従う統計量 Z に,次のように変換できる。
\begin{eqnarray} Z=\frac{W-E}{\sqrt{V}} \end{eqnarray}いわゆる Z 検定をすれば良い。 R で計算してみる。大きさ 60 の標準正規乱数 x, y を作り出し,連続補正をせずに,wilcox.test 関数による計算結果と検定統計量 W を使った正規近似定義式による計算結果を比較する。
# ウィルコクソンの符号付き順位検定のデータ set.seed(100) x<- rnorm(60) set.seed(101) y<- rnorm(60) # wilcox.test 関数による計算 res<- wilcox.test(x, y, paired=TRUE, correct=FALSE) res # 検定統計量 W を使った正規近似定義式による計算 n<- 60 E<- n*(n+1)/4 V<- n*(n+1)*(2*n+1)/24 W<- res$statistic # 検定統計量 Z<- (W-E)/sqrt(V) pnorm(Z, lower=F)*2 # 終了
結果は,いずれも p = 0.385 となり, このデータの場合, R によるウィルコクソンの符号付き順位検定が,検定統計量を正規近似した計算であると確認された。なお,標本サイズに関係なく正規近似するつもりならば,wilcox.test 関数のオプション引数で, exact=FALSE と書けばよい。