-
目次(まとめ)
- ◾️ ウィルコクソンの検定には2種類ある
- ◾️ ウィルコクソンの符号順位検定(対応ありの場合)
- ◾️ ウィルコクソンの順位和検定(対応なしの場合)
2種類の数値データ(正規分布にしたがう)があったとき、そのデータ間に意味のある差があるかどうか検定する場合「t検定」が使えると思いますが、2種類の数値データが正規分布にしたがわない場合にはどうすればいいのでしょうか?
検定対象となるデータに分布を仮定できない場合には「t検定」のような "パラメトリック検定" は適用できません("t検定" については、こちらの記事をご参照ください)。
このような場合には、"ノンパラメトリック検定" である「ウィルコクソン検定」を適用できます。
今回の記事では、Rを使って、ウィルコクソンの検定を行う方法を紹介します。
検定の分類
✔️ パラメトリック(parametric)検定
検定の対象となるデータが、何らかの確率分布にしたがって生成されたものであると仮定して検定を行う(例:t検定 ← 正規分布を仮定)
✔️ ノンパラメトリック(non-parametric)検定
検定の対象となるデータが、確率分布にしたがって生成されたものではないと仮定して検定を行う(例:ウィルコクソン順位和検定、符号順位検定)
ウィルコクソンの検定には2種類ある
以前の記事で、t検定には「対応があるt検定」と「対応がないt検定」があることを紹介しました。
今回の記事で紹介するウィルコクソンの検定にも「対応があるウィルコクソン検定」と「対応がないウィルコクソン検定」があります。
どちらも、2つの数値データから中央値を算出して、その差を検定する方法です。
ウィルコクソンの検定:2つの数値データから中央値を算出して差を検定
✔️ 符号順位検定(Wilcoxon signed rank test)
2つの数値データに対応がある場合(必然的に、サンプル数が同じになる)
✔️ 順位和検定(Wilcoxon rank sum test)
2つの数値データに対応がない場合
ちなみに、"ウィルコクソン" とは、検定の開発者である化学者・統計学者の Frank Wilcoxon さんのことを意味しています。
ウィルコクソンの符号順位検定(対応ありの場合)
ここでは、以下のような2つの数値データが与えられているとします。
> num_1 <- c(5.4, 3.6, 2.7, 2.4, 2.6)
> num_2 <- c(5.3, 6.4, 2.6, 2.4, 0.4)
ウィルコクソンの符号順位検定は、数値データに対応がある場合に適用できる検定手法なので、2つの数値データの長さ(5つずつの数字)は同じになります。
このデータに差があるかどうかを検定するためには、以下のように、ウィルコクソンの符号順位検定を行います。
# > install.packages("exactRankTests")
# > library(exactRankTests)
> wilcox.exact(num_1, num_2, paired = T)
Exact Wilcoxon signed rank test
data: num_1 and num_2
V = 6, p-value = 0.875
alternative hypothesis: true mu is not equal to 0
ウィルコクソンの順位和検定(対応なしの場合)
ここでは、以下のような2つの数値データが与えられているとします。
> num_1 <- c(5.4, 3.6, 2.7, 2.4, 2.6)
> num_2 <- c(5.3, 6.4, 2.6, 2.4, 0.4, 4.5)
ウィルコクソンの順位和検定は、数値データに対応がない場合に適用できる検定手法なので、2つの数値データの長さは同じである必要はありません。
このデータに差があるかどうかを検定するためには、以下のように、ウィルコクソンの順位和検定を行います。
# > install.packages("exactRankTests")
# > library(exactRankTests)
> wilcox.exact(num_1, num_2, paired = F)
Exact Wilcoxon rank sum test
data: num_1 and num_2
W = 15, p-value = 1
alternative hypothesis: true mu is not equal to 0
今回の記事では、Rをつかってウィルコクソン検定を行う方法を紹介しました。対応があるデータであれば "符号順位" 検定、対応がないデータであれば "順位和" 検定を適用することを覚えておきましょう。