ANOVA'dan sonra yapılan hoc testi, R kullanarak tekrarlanan ölçümlerle


24

Aşağıdaki gibi R'de ANOVA'yı tekrarlı olarak ölçtüm:

aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd)
summary(aov_velocity)
  • R'de hangi sözdizimi, bir ANOVA'dan sonra tekrarlanan ölçümlerle post hoc testi yapmak için kullanılabilir?
  • Tukey'nin Bonferroni düzeltmeli testi uygun olur mu? Öyleyse, bu R'de nasıl yapılabilir?

1
Tekrarlanan ölçümler için post hoc testlerde bu ilgili soruya bakın tasarımları stats.stackexchange.com/questions/575/...
Jeromy Anglim

3
2. puanınız hakkında : Tukey'nin HSD'si çokluk için zaten bir "düzeltme" içeriyor (Bonferroni'nin yönteminde olduğu gibi alfa seviyesi değil, test istatistiği düzeyinde). Yani, ikisini birden birleştirmenize gerek yok.
chl

1
@chl: Tukey'nin HSD durumunda çoklu çift karşılaştırmalar sırasında alfa seviyesini düzeltmemize gerek yok mu?
stan

3
@stan No. (Not: Planlanmamış (post-hoc) testler, özellikle doğrulayıcı bir yaklaşımla ilgiliyse, ANOVA önemli bir sonuç gösterdikten sonra yapılmalıdır.)
chl

Yanıtlar:


20

Ne yapabilirdi ile modeli belirtin olduğunu lmekullanmak ve sonra glhtgelen multcompistediğini yapmaya pakette. Ancak, lme standart bir ANOVA'dan biraz farklı F değerleri verir ( buradaki son sorularıma da bakınız ).

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"))

Diğer karşıtlıklar için sonra bonferroni, örneğin, paketin yazarlarının kitabınamultcomp bakınız .

Ayrıca bu yazıyı R-posta listesinde ve bu yazıyı R'de tekrarlanan bir ANOVA ölçüsü belirlemek için de görmek isteyebilirsiniz .

Ancak, benden bu soruda gösterildiği gibi, bu yaklaşımın bir ANOVA ile aynı olup olmadığından emin değilim. Ayrıca, glht , normal t veya F değerleri yerine sadece z -değerlerini bildirir . Bu da nadir görülüyor.

Şimdiye kadar, bunu yapmanın başka bir yoluyla karşılaşmadım.


2

Eğer sopa ile isterseniz aov()fonksiyonu kullanabilirsiniz emmeansişleyebilir paketi aovlist(ve diğer birçok ) nesneler.

library("emmeans")
# set orthogonal contrasts
options(contrasts = c("contr.sum", "contr.poly"))

aov_velocity <- aov(Velocity ~ Material + Error(Subject / Material), data = scrd)

emmGridAşağıdaki gibi bir nesneyi oluşturduktan sonra

emm <- emmeans(aov_velocity, ~ Material)

Tüm pairs()işlevlerin (post hoc) fonksiyon veya paketin contrast()işlevini kullanarak istenen herhangi bir kontrast kullanılarak ikili karşılaştırmalar yapmak çok kolaydır emmeans. adjustBu fonksiyonların argümanı ile çoklu test ayarlamaları yapılabilir :

pairs(emm)  # adjust argument not specified -> default p-value adjustment in this case is "tukey"  

Bu konuda daha fazla bilgi için detaylı emmy vinyetlerin ve belgelerin çok faydalı olduğunu gördüm .

Ayrıca, burada cevabımda doğru kontrast ağırlıklarının nasıl alınacağına dair bir açıklama içeren eksiksiz (tekrarlanabilir) bir örnek bulabilirsiniz .

Ancak, post hoc testler için tek değişkenli bir model kullanmanın, küreselliğin ihlal edilmesi durumunda muhafazakar olmayan p değerlerine yol açabileceğini unutmayın .


0

Eğer küresellik karşılanıyorsa iki yönlü ANOVA koyabilirsiniz:

aov_velocity = aov(Velocity~Material+Subject, data=scrd)
posthoc      = TukeyHSD(aov_velocity, 'Material', conf.level=0.95).
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.