R !!!emmeans https://cran.r-project.org/web/packages/emmeans/vignettes/comparisons.html !Quick start guide https://cran.r-project.org/web/packages/emmeans/vignettes/AQuickStart.html * モデルに含まれる値の全体の平均 means * モデルに含まれる特定の条件に限った平均 marginal means !使い方:その前提は、model(glmの結果など)ができていること。 {{pre emm.result <- emmeans(モデル) で平均値を取得して contrasts(emm.result, ...) で比較するか pairs(emm.result) ペアにして比較 }} !要因が一つの場合 {{pre emm.result <- emmeans(モデル, "要因名") もしくは emm.result <- emmeans(モデル, ~ 要因名) と表記(~つけて、引用符なし) }} これで、emm.resultの中に平均値が入る * ペアにして比較する場合 {{pre contrast(emm.result, "pairwise") もしくは pairs(emm.result) }} !要因が二つの場合(交互作用なし) * 要因を一つずつ扱う {{pre emm.result.1 <- emmeans(モデル, ~ 要因1) pairs(emm.result.1) emm.result.2 <- emmeans(モデル, ~ 要因2) pairs(emm.result.2) }} !交互作用のある二要因 {{pre emm.result <- emmeans(モデル, ~ 要因1 * 要因2) }} * 多重比較 {{pre pairs(emm.result, simple = "要因1") で、もう一つの要因2あたりの単純主効果 pairs(emm.result, simple = "要因2") で、もう一つの要因1あたりの単純主効果 }} * p値の補正は、Tukeyで行われる。 ! ref_grid() !多重比較 *GLMでモデルを作って、そのモデルにおける要因の水準間の多重比較を行う。 *例:1,2,3の学年間で、IPSynのスコアに差があるか? !モデル ipsyn.model0 <- glm(ipsyn ~ year, data, family=gaussian) !平均と信頼区間 {{pre hikaku0 <- emmeans(ipsyn.model0, specs="year") year emmean SE df lower.CL upper.CL 1 54.8 1.022 131 52.7 56.8 2 64.3 0.958 131 62.5 66.2 3 69.5 1.034 131 67.4 71.5 }} !多重比較検定 * 補正の方法 adjust="bonferroni" adjust="holm" {{pre pairs(hikaku0, adjust="bonferroni") contrast estimate SE df t.ratio p.value 1 - 2 -9.58 1.40 131 -6.840 <.0001 1 - 3 -14.68 1.45 131 -10.099 <.0001 2 - 3 -5.11 1.41 131 -3.622 0.0012 }} !プロット {{pre plot(hikaku0, comparison=T) }} {{ref_image hikaku0.png}} * 別のプロット {{pre plot(allEffects(ipsyn.model0)) }} {{ref_image ipsyn-year.png}}