統計ソフトR:3群以上での比較

 
けい
Rで2群の比較はできたけど3群以上の比較もしたい

今回は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

スポンサーリンク
最新情報をチェックしよう!