三群のノンパラメトリック検定を行う方法【R備忘録】

三群のノンパラメトリック検定を行う方法【R備忘録】

データの正規性や等分散性の仮定を満たさない場合、ノンパラメトリック検定を使用します。三群以上のデータを比較する場合、クラスカル・ウォリス検定(Kruskal-Wallis test)を使用します。この検定は、分散分析(ANOVA)の非パラメトリック版と考えることができます。

スポンサーリンク

1. クラスカル・ウォリス検定の実行

クラスカル・ウォリス検定は、データが正規分布に従わない場合や、分散が等しくない場合に使用されます。以下のコードで実行できます。

# データの作成
group1 <- rnorm(30, mean = 5)
group2 <- rnorm(30, mean = 6)
group3 <- rnorm(30, mean = 7)

# データを1つのデータフレームにまとめる
data <- data.frame(
  value = c(group1, group2, group3),
  group = factor(rep(c("group1", "group2", "group3"), each = 30))
)

# クラスカル・ウォリス検定の実行
kruskal.test(value ~ group, data = data)

このコードでは、三群のデータ(group1, group2, group3)の中央値が同じかどうかを検定します。`kruskal.test`を使用することで、正規性がない場合でも群間の差を調べることができます。

スポンサーリンク

2. 事後検定(Dunn検定)

クラスカル・ウォリス検定が有意であった場合、どの群間に差があるのかを確認するために事後検定を行います。Rでは`dunn.test`パッケージを使用してDunn検定を行います。

# dunn.testパッケージのインストール
install.packages("dunn.test")

# パッケージの読み込み
library(dunn.test)

# Dunn検定の実行
dunn.test(data$value, data$group, method="bonferroni")

このDunn検定により、群間の差をペアで比較し、有意な差があるかどうかを確認できます。Bonferroni法を用いて多重比較による誤差を調整しています。

スポンサーリンク

3. 分布の違いを確認するプロット

クラスカル・ウォリス検定の前後で、各群の分布の違いを確認するために箱ひげ図を作成することも有効です。Rでは`boxplot`関数を使用して簡単に描画できます。

# 箱ひげ図の作成
boxplot(value ~ group, data = data, main = "Group Comparison", ylab = "Value", xlab = "Group")

このコードにより、各グループの分布を視覚的に比較でき、分布の偏りや中央値の違いが一目でわかります。

スポンサーリンク

まとめ

三群以上のデータをノンパラメトリック手法で比較する場合、クラスカル・ウォリス検定を使用します。検定が有意であった場合、Dunn検定などの事後検定を行って、どの群間に有意差があるのかを確認します。箱ひげ図などの視覚的な比較も行うことで、よりデータの理解が深まります。

コメント

タイトルとURLをコピーしました