こんにちは。ほしのはやしです。
3群以上で比較したい場合、ANOVAを使えって言われること、ありますよね。
今回は、よく見るけど初心者にはよくわからないone-way ANOVA(一元配置分散分析)について、詳しい理論はすっ飛ばして使い場所や具体的な例について説明してきます!
ANOVAでは、One-way ANOVA, two-way ANOVAがよく知られていますが、このページではone-way ANOVAについて説明していきます。
2群についての比較は以下のページを参考にしてください!


One-way ANOVA(一元配置分散分析)
いつ使う?one-way ANOVAの使い道
One-way ANOVA(一元配置分散分析)は、3群以上の数値の比較をするときに使います。
統計ソフトによっては2群でもP値を計算してくれますが、2群のANOVAは対応のないt検定と結果が等しくなります!
興味のある人は教科書を読むとよいでしょう。
使える前提条件
全ての群が正規性かつ等分散性を満たす場合のみ使用できます。
検定方法についてはこちらを参照してください!

どれか一つでも非正規や非等分散であれば、Kruskal-Wallis検定を使うことになります!
Kruskal-Wallis検定についてはこちらを参照してください!

具体的なコード(R studio)
薬A, B, Cをそれぞれ使ったあと4週後に測定した体重(BW)に差があるか調べたい、状況を考えます。
テーブル名:datasheet1
Drug | BW |
---|---|
A | 60 |
B | 63 |
B | 57 |
C | 65 |
A | 68 |
C | 70 |
… | … |
library(tidyverse)
res1 <- aov(BW ~ Drug, data = datasheet1)
summary(res1)
上に出てきた <- は、◯◯に結果を代入するという意味です。
今回は『res1』としましたが、かわりに『result』でも『res.aov』でもなんでもよいです。
その場合はsummaryの()の中も、同じものに変える必要があります。
summaryは、Rで計算した結果を表示するのによく使う呪文だから覚えておくと便利です!
『BW ~ Drug』というのは、BWの数値をDrugの内訳で比較する、という意味になります。
P値に有意差が出たらどうする?
3群以上の比較の場合、有意差はいずれかの2群で差があることを示唆しているに過ぎません。
そのため、有意差が出た場合は、どの群間で差があるかを調べるpost-hoc analysisというのをやる必要があります。
One-way ANOVAにおけるPost-hoc analysisには以下の方法があります。
- Tukey HSD:全ての群間を調べる
- Dunnet:ある群をコントロールとして、コントロールとその他の群のみ比較(コントロール以外の比較については評価できない)
- Bonferroni correction:有意水準が0.05ならそれを群数(4群なら4)で割ったもの(4群なら0.0125)を有意水準にする
多くの場合はTukey HSDを使うことになると思います。このページではTukey HSDについて説明します。
Tukey HSDによるpost-hoc analysis (R studio)
先程の続きとします。
library(tidyverse)
res1 <- aov(BW ~ Drug, data = datasheet1)
summary(res1)
res2 <- TukeyHSD(res1)
summary(res2)
これでそれぞれの群についての調整されたP値(adj P)が計算されました。
どの群に差があるか調べることができますね!
まとめ
One-way ANOVAを使って、3群の数値の比較とpost-hoc analysisの方法について説明しました。
少しでも統計について慣れていただけると幸いです!
コメント