Rによるウィルコクソンの順位和検定
R にてウィルコクソンの順位和検定 (Wilcoxon rank sum test) を行う.本検定法は,ウィルコクソンの符号順位検定 (Wilcoxon signed rank test) とは明確に異なる検定法である.ウィルコクソンの符号順位検定は比較したい2群間に対応がある場合に使う法で,ウィルコクソンの順位和検定は2群間に対応がない場合に使う.この検定法はパラメトリック検定でいうところのスチューデントのt検定とかウェルチのt検定に相当する.R ではパッケージ exactRankTests に搭載されている関数 wilcox.exact() にて計算する.既に開発は終了しており,読み込むとパッケージ coin の利用を促されるが,開発の余地がない枯れた手法なので使い続けて良い.また,R にデフォルトでインストールされている stats パッケージにも本検定を実行するための wilcox.test() が搭載されているが,この関数はデータにタイが存在したときに正確な値を返さないため,wilcox.exact() を使った方が良い.wilcox.exact() では,Streitberg と Roehmel のシフトアルゴリズム (Shift algorithm) により,統計量に対する正確なヌル分布が計算される.
最初に,R を起動させ,以下のコマンドにてパッケージをインストールし,そのパッケージを読み込む.既にパッケージをインストールしている場合は1行目は不要.
$ install.packages("exactRankTests", repos="http://cran.ism.ac.jp/") $ library(exactRankTests)
p値の計算
ウィルコクソンの順位和検定は独立2群間の代表値の差の検定である.実質的にはマン・ホイットニーのU検定 (Mann-Whitney U test) と同等な検定である.各群の標本数は一致しなくて良い.以下のデータXおよびデータYの2群間の代表値に差があるかどうかを検定する.帰無仮説 (H0) は2群間の代表値に差がないことである.
データX | 1.83, 1.50, 1.62, 2.48, 1.68, 1.88, 1.55, 3.06, 1.30, 2.01, 3.11 |
データY | 0.88, 0.65, 0.60, 1.05, 1.06, 1.29, 1.06, 2.14, 1.29 |
以下のコマンドにて,上のデータXおよびYをそれぞれ変数 vx および vy に格納する.
$ vx=c(1.83, 1.50, 1.62, 2.48, 1.68, 1.88, 1.55, 3.06, 1.30, 2.01, 3.11) $ vy=c(0.88, 0.65, 0.60, 1.05, 1.06, 1.29, 1.06, 2.14, 1.29)
ウィルコクソンの順位和検定は以下のコマンドにて実行する.順位和検定では paired=F を指定する.ここで,paired=T を指定するとウィルコクソンの符号順位検定が実行される.
$ wilcox.exact(x=vx,y=vy,paired=F)
これを実行した結果は以下のようになる.
Exact Wilcoxon rank sum test data: vx and vy W = 91, p-value = 0.0007145 alternative hypothesis: true mu is not equal to 0
以上の結果では,p値が0.0007145となっており,有意水準を1%としても帰無仮説が棄却され,その結果データXおよびデータYの代表値には差があることが主張できる.
信頼区間の計算
また,以下のように打つと信頼区間を算出することができる.conf.int=T は信頼区間を計算させるオプションであり,conf.level は信頼区間の信頼水準を指定するオプションである.例えば,conf.level=0.99 と指定すると99%信頼区間が計算される.
$ wilcox.exact(x=vx,y=vx,paired=F,conf.int=T,conf.level=0.99)
これを実行した結果は以下のようになる.
Exact Wilcoxon rank sum test data: vx and vy W = 91, p-value = 0.0007145 alternative hypothesis: true mu is not equal to 0 99 percent confidence interval: 0.26 1.82 sample estimates: difference in location 0.79
オプション一覧
その他のオプションには以下のようなものがある.
オプション | 詳細 |
---|---|
x | 検定対象の読み込むデータの指定 (必須). |
y | もう一方の検定対象の読み込むデータの指定 (順位和検定の際は必須). |
alternative | 両側検定 (alternative="t") をするか片側検定をするかの指定.片側検定の場合はさらに,右側検定 (alternative="g") をするか左側検定 (alternative="l") をするかの指定. |
paired | 順位和検定 (paired=F) をするか符号順位検定 (paired=T) をするかの指定. |
exact | T または F で指定.exact=T を指定した場合は,p値を統計量の正規分布への近似ではなく正確に求める.デフォルトはサンプルサイズが50未満で T,それ以外で F で,これを F にするなら,R のデフォルトの wilcox.test() においても,タイがあってもp値は計算されるようになる. |
conf.int | 信頼区間を算出するかどうかの指定 (T または F). |
conf.level | 直上のオプションを指定した際の信頼水準の指定 ( (0, 1] ). |
リファレンス
- Hothorn T and Hornik K, Exact nonparametric inference in R, Compstat, 355-360, 2002