研究室に配属されたばかりの新入生や、これからRで統計分析を始めたいと思っている方へ向けて、【R講座】では、RとRStudioの基本的な使い方から統計手法の選び方、基本的なデータ分析方法までを解説しています。
特にRが初めての方でも安心して学べるように、難しいコマンドやコードは少なめで、RStudioのクリック操作を中心に進めていくので、プログラミングの経験がなくても大丈夫です。
実際のコードを交えながら進めるので、これからの研究やデータ分析に、ぜひ役立ててください!
この記事では、マンホイットニーのU検定について紹介しています。
マンホイットニーのU検定
マン・ホイットニーU検定(Mann–Whitney U test)は、2つの独立したサンプルの順序平均を比較するためのノンパラメトリック検定です。データが等分散であることが前提条件となっています。
- 帰無仮説 (H0):両母集団の分布は同一である。
- 対立仮説 (H1):両母集団の分布は同一ではない。
マン・ホイットニー・ウィルコクソン検定、ウィルコクソン順位和検定、またはウィルコクソン・マン・ホイットニー検定とも呼ばれます。
RでマンホイットニーのU検定
Rを使って、マンホイットニーのU検定を実行する方法を紹介します。
関数と引数オプション
wilcox.test
関数は、Wilcoxon順位和検定(またはウィルコクソン符号順位検定)を実行するために使用されるRの関数です。この関数は、データの2つの独立したサンプルまたは1つのペアデータサンプルの中央値を比較するために使用されます。
# ベクトルを使う方法
wilcox.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, exact = NULL, correct = TRUE,
conf.int = FALSE, conf.level = 0.95,
tol.root = 1e-4, digits.rank = Inf, ...)
# データフレームを使う方法
wilcox.test(formula, data, subset, na.action, ...)
- x: 数値ベクトル。データの値を指定します。無限大や欠損値などの非有効値は省略されます。
- y: オプションの数値ベクトル。xと同様にデータの値を指定します。無限大や欠損値などの非有効値は省略されます。
- alternative: 対立仮説を指定する文字列。デフォルトは"two.sided"で、"greater"または"less"も指定できます。最初の文字だけでも指定可能です。
- mu: 帰無仮説を形成するために使用されるオプションのパラメーターを指定する数値。詳細は後述。
- paired: 対応のある検定を行うかどうかを示す論理値。
- exact: 正確なp値を計算するかどうかを示す論理値。
- correct: p値の正規近似に連続性補正を適用するかどうかを示す論理値。
- conf.int: 信頼区間を計算するかどうかを示す論理値。
- conf.level: 信頼区間の信頼水準を指定する数値。
- tol.root: (conf.intがTRUEの場合)
uniroot(*, tol=tol.root)
呼び出しで使用される正の数値トレランス。 - digits.rank: 数値。有限の場合、テスト統計量のランクを計算するために
rank(signif(r, digits.rank))
が使用されます。デフォルトはrank(r)
。 - formula:
lhs ~ rhs
の形式の数式。lhsはデータ値を与える数値変数であり、rhsは1つのサンプルまたは対応のある検定の場合は1、または対応するグループを与える2レベルのファクター。 - data: 数式内の変数を含むオプションのマトリックスまたはデータフレーム(または類似のもの)。デフォルトでは変数は
environment(formula)
から取得されます。 - subset: 使用する観測値のサブセットを指定するオプションのベクトル。
- na.action: データにNAが含まれている場合にどうするかを示す関数。デフォルトは
getOption("na.action")
。 - ...: メソッドに渡す追加の引数。
コード例と結果の見方
# サンプルデータの作成
group1 <- c(5, 7, 8, 5, 6)
group2 <- c(10, 15, 11, 12, 14)
# マンホイットニーのU検定の実行
wilcox.test(group1, group2)
# 結果
Wilcoxon rank sum test with continuity correction
data: group1 and group2
W = 0, p-value = 0.01193
alternative hypothesis: true location shift is not equal to 0
この結果から、p値が0.01193であることがわかります。一般に、有意水準を5%とする場合、p値が0.05未満であれば、2つのグループ間に有意な差があると判断します。したがって、この場合、2つのグループの中央値に有意な差があると結論づけることができます。
Warning message:
In wilcox.test.default(group1, group2) :
cannot compute exact p-value with ties
という警告文が出る場合は、exactRankTests
パッケージのwilcox.exact
関数を使うこともできます。
現在(2024.07.10時点)、exactRankTests
は古いためcoin
パッケージを使うようにメッセージが表示されるようです。また、coin
パッケージのwilcox_test
もエラーが発生しているようです。
rstatix
パッケージが使えるようなので紹介します。
この記事はマンホイットニーのU検定について解説しました。
次回はクラスカル・ウォリス検定の方法について紹介します。
この記事が少しでもお役に立てたら嬉しいです。