次のように、Rで反復測定ANOVAを実行しました。
aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd)
summary(aov_velocity)
- Rのどの構文を使用して、反復測定によるANOVAの後に事後検定を実行できますか?
- ボンフェローニ補正によるテューキーのテストは適切でしょうか?もしそうなら、これをRでどのように行うことができますか?
次のように、Rで反復測定ANOVAを実行しました。
aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd)
summary(aov_velocity)
回答:
できることは、モデルを指定し、パッケージからlme
使用glht
しmultcomp
て必要なことを行うことです。ただし、lmeは標準のANOVAとは少し異なるF値を示します(こちらの最近の質問も参照してください)。
lme_velocity = lme(Velocity ~ Material, data=scrd, random = ~1|Subject)
anova(lme_velocity)
require(multcomp)
summary(glht(lme_velocity, linfct=mcp(Material = "Tukey")), test = adjusted(type = "bonferroni"))
他の対比についてはbonferroni、例えば、パッケージの著者からの本をmultcomp
参照してください。
また、この投稿をRメーリングリストに表示したり、このブログ投稿でRの反復測定ANOVAを指定することもできます。
しかし、私からのこの質問に示されているように、このアプローチが分散分析と同一であるかどうかはわかりません。さらに、glht は通常のtまたはF値ではなくz値のみを報告します。これも珍しいようです。
これまでのところ、私はこれを行う別の方法に遭遇していません。
aov()
関数を使い続けたい場合は、オブジェクト(および他の多くのオブジェクト)をemmeans
処理できるパッケージを使用できます。 aovlist
library("emmeans")
# set orthogonal contrasts
options(contrasts = c("contr.sum", "contr.poly"))
aov_velocity <- aov(Velocity ~ Material + Error(Subject / Material), data = scrd)
emmGrid
次のようにオブジェクトを作成した後
emm <- emmeans(aov_velocity, ~ Material)
pairs()
関数を使用してすべての(事後)ペアワイズ比較を取得するかcontrast()
、emmeans
パッケージの関数を使用して任意のコントラストを取得するのは非常に簡単です。adjust
これらの関数の引数を使用して、複数のテスト調整を実現できます。
pairs(emm) # adjust argument not specified -> default p-value adjustment in this case is "tukey"
詳細については、詳細なビネットとドキュメントが非常に役立つことがわかりました。
また、ここでの答えに正しいコントラストの重みを取得する方法の説明を含む完全な(再現可能な)例があります。
ただし、ポストホックテストに単変量モデルを使用すると、球形性が侵害された場合に保守的でないp値が生じる可能性があることに注意してください。
球形度が満たされている場合、2因子ANOVAを実行できます。
aov_velocity = aov(Velocity~Material+Subject, data=scrd)
posthoc = TukeyHSD(aov_velocity, 'Material', conf.level=0.95).