R でダンのテストを実行する方法
クラスカル・ウォリス検定は、 3 つ以上の独立したグループの中央値間に統計的に有意な差があるかどうかを判断するために使用されます。これは、 一元配置 ANOVAと同等のノンパラメトリックとみなされます。
クラスカル-ウォリス検定の結果が統計的に有意である場合は、 ダン検定を実行してどのグループが異なるかを正確に判断することが適切です。
このチュートリアルでは、R でダンのテストを実行する方法について説明します。
例: R でのダン テスト
ある研究者は、3 つの薬が腰痛に対して異なる効果を発揮するかどうかを知りたいと考えています。そこで彼は、同様の腰痛に悩む 30 人を募集し、ランダムに 3 つのグループに分けて、薬 A、薬 B、薬 C のいずれかを投与します。薬を服用してから 1 か月後、研究者は各個人に腰痛を評価してもらいます。 1 から 100 までのスケールで、100 が最も激しい痛みを示します。
研究者は、有意水準 0.05 を使用してクラスカル・ウォリス検定を実行し、これら 3 つのグループの腰痛評価の中央値の間に統計的に有意な差があるかどうかを判断しました。
次のコードは、R でデータ フレームを作成し、クラスカル-ウォリス テストを実行する方法を示しています。
#make this example reproducible
set.seed(0)
#create data frame
data <- data.frame(drug = rep(c("A", "B", "C"), each = 10),
bread = c(runif(10, 40, 60),
runif(10, 45, 65),
runif(10, 55, 70)))
#view first six rows of data frame
head(data)
# drug pain
#1 A 57.93394
#2 A 45.31017
#3 A 47.44248
#4 A 51.45707
#5 A 58.16416
#6 A 44.03364
#perform Kruskal-Wallis Test
kruskal.test(pain ~ drug, data = data)
Kruskal-Wallis rank sum test
data: pain by drug
Kruskal-Wallis chi-squared = 11.105, df = 2, p-value = 0.003879
全体の p 値 ( 0.003879 ) は 0.05 未満であるため、これは、3 つの薬剤間に報告された痛みのレベルに統計的に有意な差があることを意味します。したがって、ダンのテストを実行して、どの薬が異なるかを正確に判断できます。
次のコードは、 FSA()ライブラリのdunnTest()関数を使用して R でダン テストを実行する方法を示しています。
#loadlibrary
library(FSA)
#perform Dunn's Test with Bonferroni correction for p-values
dunnTest(pain ~ drug,
data=data,
method=" bonferroni ")
Dunn (1964) Kruskal-Wallis multiple comparison
p-values adjusted with the Bonferroni method.
Comparison Z P.unadj P.adj
1 A - B -0.8890009 0.374002602 1.000000000
2 A - C -3.2258032 0.001256197 0.003768591
3 B - C -2.3368023 0.019449464 0.058348393
多重比較の p 値にボンフェローニ補正を使用することを選択しましたが、他の可能なオプションには次のものがあることに注意してください。
- 「sidak」(シダック調整)
- 「holm」(ホルム調整)
- 「hs」(ホルム・シダック調整)
- 「bs」(ボンフェローニ・シダック調整)
- 「によって」(ベンジャミン・イェクテイリ調整)
- 「bh」 ( ベンジャミニ・ホッホベルク法)
α = 0.05 では、薬物 A と C は互いに統計的に有意に異なる唯一の 2 つの薬物です (調整済み p 値 = 0.003768 )。