こんにちは。ほしのはやしです。
解析したいデータがあって、t検定やANOVAとか勉強してきたと思います。
その中で、正規性や等分散性という言葉が出てくるところから、画面をそっ閉じしたくなることは本当によくあると実感しています。
このページでは、難しい数式や理論はすっ飛ばして、正規性や等分散性をRで評価する方法について説明していきます!
正規性の検定(Shapiro-Wilk test:シャピロ-ウィルク検定)
薬A, B, Cをそれぞれ使ったあと4週後に測定した体重(BW)がそれぞれ正規分布するか調べたい、状況を考えます。
テーブル名:datasheet1
Drug | BW |
---|---|
A | 60 |
B | 63 |
B | 57 |
C | 65 |
A | 68 |
C | 70 |
… | … |
tapply(datasheet1$BW, datasheet1$Drug, shapiro.test)
これだけです!
tapply(正規分布するか調べたい列名, 群分けしたい列名, やりたい検定)
もしBW全体が正規分布するか調べたいときは、シンプルに以下だけでよいです。
shapiro.test(datasheet1$BW)
P<0.05のときが、正規分布しない(=ノンパラメトリック検定を使うべき)という意味になります!
超簡単だね!
等分散性の検定(Bartlett’s test:バートレット検定)
正規性評価で使ったのと同じデータシートを使います。
このバートレット検定は正規分布する場合のみ使用できます。
具体的な使い道としては、one-way ANOVAで評価したい集団において、『Shapiro-Wilk検定で有意差がない=正規分布する』を確認して、『Bartlett検定で有意差がない=等分散である』を行い、正規分布・等分散性の前提が満たされたのでone-way ANOVAを行う、ということになります。
bartlett.test(BW ~ Drug, data = datasheet1)
bartlett.test(等分散するか調べたい列名 ~ 群分けしたい列名, data = 使いたいデータシート名)
これで大丈夫です!
複数回統計処理をする場合の多重性の問題については成書をご確認ください。
まとめ
正規性・等分散性についての検定の方法について説明しました!
Shapiro-Wilk検定/Bartlett検定のいずれかで有意差が一つでもある場合は、one-way ANOVAは使わずに、Kruskal-Wallis検定にしましょう!
one-way ANOVAやKruskal-Wallis検定は関連記事をご確認ください。
少しでも統計について慣れていただけると幸いです!
コメント