実装関連事項

各種プログラミング言語の基本的な書き方やソフトウェア等の使用方法について.

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群間の代表値に差がないことである.

データX1.83, 1.50, 1.62, 2.48, 1.68, 1.88, 1.55, 3.06, 1.30, 2.01, 3.11
データY0.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) をするかの指定.
exactT または F で指定.exact=T を指定した場合は,p値を統計量の正規分布への近似ではなく正確に求める.デフォルトはサンプルサイズが50未満で T,それ以外で F で,これを F にするなら,R のデフォルトの wilcox.test() においても,タイがあってもp値は計算されるようになる.
conf.int信頼区間を算出するかどうかの指定 (T または F).
conf.level直上のオプションを指定した際の信頼水準の指定 ( (0, 1] ).
  1. Hothorn T and Hornik K, Exact nonparametric inference in R, Compstat, 355-360, 2002
Hatena Google+