Sürekli ve kategorik öngörücü arasındaki etkileşim için karma model çoklu karşılaştırmalar


11

lme4Karışık etkiler regresyonuna uymak multcompve ikili karşılaştırmaları hesaplamak için kullanmak istiyorum . Birden fazla sürekli ve kategorik öngörücülerle karmaşık bir veri setim var, ancak sorum, ChickWeightörnek olarak yerleşik veri kümesini kullanarak gösterilebilir :

m <- lmer(weight ~ Time * Diet + (1 | Chick), data=ChickWeight, REML=F)

Timesüreklidir ve Dietkategoriktir (4 seviye) ve diyet başına birden fazla Civciv vardır. Tüm civcivler yaklaşık aynı ağırlıkta başladı, ancak diyetleri büyüme oranlarını etkileyebilir, bu nedenle Dietkesişmeler (az ya da çok) aynı olmalıdır, ancak eğimler farklı olabilir. Bunun Dietgibi intercept etkisi için çift karşılaştırmalar alabilirsiniz :

summary(glht(m, linfct=mcp(Diet = "Tukey")))

ve gerçekten de önemli ölçüde farklı değiller, ancak Time:Dietetki için benzer testi nasıl yapabilirim ? Etkileşim terimini koymak mcpbir hata oluşturur:

summary(glht(m, linfct=mcp('Time:Diet' = "Tukey")))
Error in summary(glht(m, linfct = mcp(`Time:Diet` = "Tukey"))) : 
  error in evaluating the argument 'object' in selecting a method for function
 'summary': Error in mcp2matrix(model, linfct = linfct) : 
Variable(s) Time:Diet have been specified in linfct but cannot be found in model’! 

Sadece Time*Dietbasitleştirmesi vardır Time + Diet + Time:Diet. anova(m)Veya kullanılması summary(m), etkileşim teriminin modelde olduğunu doğrular.
Dan M.

Yanıtlar:


8

Varsayılan olarak, lmerkategorik bir öngörücünün referans düzeyini taban çizgisi olarak ele alır ve diğer düzeyler için parametreleri tahmin eder. Böylece varsayılan çıktıda bazı çift karşılaştırmalar elde edersiniz ve relevelyeni bir referans seviyesi tanımlamak ve modeli yeniden takmak için diğerlerini elde edebilirsiniz . Bu, p-değerlerini almak için model karşılaştırmaları veya MCMC kullanmanıza izin verme avantajına sahiptir, ancak birden fazla karşılaştırma için düzeltmez (ancak daha sonra kendi düzeltmenizi uygulayabilirsiniz).

Kullanmak multcompiçin kontrast matrisini tanımlamanız gerekir. Kontrast matristeki her satır, Kesişim noktasından başlayarak varsayılan model çıktısında elde ettiğiniz efektlerin ağırlıklarını temsil eder. Dolayısıyla, temel çıktıya zaten dahil edilmiş bir efekt istiyorsanız, sadece bu etkiye karşılık gelen konuma bir "1" koyarsınız. Parametre tahminleri ortak bir referans seviyesine göreli olduğundan, birinin ağırlığını "-1" ve diğer "1" olarak ayarlayarak diğer iki seviye arasında karşılaştırma yapabilirsiniz. Bunun Time:Diet, ChickWeightörnekteki terimler için nasıl işleyeceği aşağıda açıklanmıştır :

contrast.matrix <- rbind("Time:Diet1 vs. Time:Diet2" =  c(0, 0, 0, 0, 0, 1, 0, 0),
                           "Time:Diet1 vs. Time:Diet3" =  c(0, 0, 0, 0, 0, 0, 1, 0),
                           "Time:Diet1 vs. Time:Diet4" =  c(0, 0, 0, 0, 0, 0, 0, 1),
                           "Time:Diet2 vs. Time:Diet3" =  c(0, 0, 0, 0, 0, -1, 1, 0),
                           "Time:Diet2 vs. Time:Diet4" =  c(0, 0, 0, 0, 0, -1, 0, 1),
                           "Time:Diet3 vs. Time:Diet4" =  c(0, 0, 0, 0, 0, 0, -1, 1))
summary(glht(m, contrast.matrix))

Uyarı emptoru: Bu yaklaşım, bir miktar anti-muhafazakar olan ve daha sonra çoklu karşılaştırmalar için bazı düzeltmeler uygulayan p değerlerini almak için normal yaklaşımı kullanıyor gibi görünmektedir. Sonuç, bu yöntemin istediğiniz kadar çift parametre tahminine ve standart hatalara kolay erişim sağlamasıdır, ancak p-değerleri istediğiniz gibi olabilir veya olmayabilir.

( Bu konuda yardım için r-ling-lang-L'den Scott Jackson'a teşekkürler )

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.