今回はRで3群以上の比較を行います。
3群以上の比較
連続変数
・oneway.test:データ数が大きい、正規分布している
・kruskal.test:データ数が小さい、正規分布していない離散変数
・chisq.test
連続変数を3群以上で比較する
データ数が大きい際や正規分布をしているときはoneway.test、そうでないときはkrustal.testを用います。
oneway.test
データ数が大きいとき、正規分布しているときに使用します。
oneway.test(連続変数 ~ 群分けする変数, data = データフレーム名)
CreateTableOneを使うと平均と標準偏差も求められ便利です。
print(CreateTableOne(vars = "", strata = "", data = ))
vars = 評価する連続変数
strata = 群分けする変数
data = データフレーム名
kruskal.test
データ数が小さいとき、正規分布していないときに使用します。
kruskal.test(連続変数 ~ 群分けする変数, data = データフレーム名)
CreateTableOneを使うと平均と標準偏差も求められ便利です。
kruskal.testではoneway.testと異なり、nonnormalを追加します。
print(CreateTableOne(vars = "", strata = "", data = ), nonnormal = "")
vars = 評価する連続変数
strata = 群分けする変数
data = データフレーム名
nonnormal = “評価する連続変数”
chisq.test
3群以上で離散変数を比較する際に使用します。
oneway.test(データフレーム名$連続変数, データフレーム名$群分けする変数)
CreateTableOneを使うと平均と標準偏差も求められ便利です。
print(CreateTableOne(vars = "", strata = "", factorVars = "", data = ))
vars = 評価する離散変数
strata = 群分けする変数
factorVars = 評価する離散変数
data = データフレーム名
これで有意差があれば多重比較に進みます。
多重比較法
上記の検定で有意差があった場合、3群のうちのどれかに有意差があることはわかりますが、どれに差があるかはわかりません。
3群以上では2つの群の組み合わせごとに検定(多重検定)すると、p値の解釈を誤ってしまいます。
そのため3群以上の比較では多重比較法を用いる必要があります。
連続変数
・pairwise.t.test:oneway.testの続き
・pairwise.wilcox.test:kruskal.testの続き離散変数
・pairwise.prop.test:chisq.testの続き
pairwise.t.test(評価する変数, 群分けする変数, p.adjust.method = "bonferroni")
pairwise.wilcox.test(評価する変数, 群分けする変数, p.adjust.method = "bonferroni")
pairwise.prop.test(table(評価する変数, 群分けする変数), p.adjust.method = "bonferroni")
p値はBonferroni法により調整しています。
Bonferroniについてはこちらがわかりやすいです。
流れとしては
データ数が大きい、正規分布している連続変数
oneway.test → pairwise.t.test
データ数が小さい、正規分布していない連続変数
kruskal.test → pairwise.wilcox.test
離散変数
chisq.test → pairwise.prop.test