Lme4 kullanan karma efektli modellerde etkileşim terimi için P değeri


10

Ben kullanarak bazı davranışsal verilerin analiz ediyorum lme4yılında Rçoğunlukla ardından Bodo Kış mükemmel öğreticiler , ama düzgün etkileşimleri hallediyorum ben anlamıyorum. Daha kötüsü, bu araştırmaya dahil olan hiç kimse karışık modeller kullanmaz, bu yüzden işlerin doğru olduğundan emin olmak konusunda biraz şaşırıyorum.

Sadece yardım için bir çığlık atmak yerine, sorunu yorumlamak için elimden geleni yapmam ve sonra toplu düzeltmelerinize yalvarmam gerektiğini düşündüm. Diğer birkaç kenarı:

  • Yazarken, etkileşim sorusu için nlmedaha doğrudan p değerleri verdiğini gösteren bu soruyu buldum , ancak yine de ilişki ile sormanın geçerli olduğunu düşünüyorum lme4.
  • Livius'Bu sorunun cevabı , önümüzdeki birkaç gün içinde geçmeye çalışacağım birçok ek okumaya bağlantılar sağladı, bu yüzden getirecek herhangi bir ilerleme ile yorum yapacağım.

Benim verilerde, ben bir bağımlı değişken var dv, bir conditionmanipülasyon (bir yüksek yol açmalıdır 0 = kontrolü, 1 = deneysel koşul, dv), ve aynı zamanda bir ön koşul, etiketli appropriate: kodlu çalışmalar 1etkisini göstermesi gerekir bunun için, ancak denemeler kodlu 0kudretini değil, çünkü çok önemli bir faktör eksik.

Ayrıca, her bir konu içindeki ve çözülen 14 sorunun her biri için ilişkili değerleri yansıtan subjectve targetyansıtan iki rasgele engelleme dvekledim (her katılımcı, her sorunun hem kontrolünü hem de deneysel bir versiyonunu çözdü).

library(lme4)
data = read.csv("data.csv")

null_model        = lmer(dv ~ (1 | subject) + (1 | target), data = data)
mainfx_model      = lmer(dv ~ condition + appropriate + (1 | subject) + (1 | target),
                         data = data)
interaction_model = lmer(dv ~ condition + appropriate + condition*appropriate +
                              (1 | subject) + (1 | target), data = data)
summary(interaction_model)

Çıktı:

## Linear mixed model fit by REML ['lmerMod']
## ...excluded for brevity....
## Random effects:
##  Groups   Name        Variance Std.Dev.
##  subject  (Intercept) 0.006594 0.0812  
##  target   (Intercept) 0.000557 0.0236  
##  Residual             0.210172 0.4584  
## Number of obs: 690, groups: subject, 38; target, 14
## 
## Fixed effects:
##                                Estimate Std. Error t value
## (Intercept)                    0.2518     0.0501    5.03
## conditioncontrol               0.0579     0.0588    0.98
## appropriate                   -0.0358     0.0595   -0.60
## conditioncontrol:appropriate  -0.1553     0.0740   -2.10
## 
## Correlation of Fixed Effects:
## ...excluded for brevity.

Daha sonra ANOVA , önemli bir etkileşimin mevcut olduğu sonucuna vardığımdan interaction_modelçok daha iyi bir uyum olduğunu göstermektedir mainfx_model(p = .035).

anova(mainfx_model, interaction_model)

Çıktı:

## ...excluded for brevity....
##                   Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)  
## mainfx_model       6 913 940   -450      901                          
## interaction_model  7 910 942   -448      896  4.44      1      0.035 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Oradan, appropriategereksinimin karşılandığı verilerin bir alt kümesini izole ediyorum (yani, appropriate = 1) ve bunun için boş bir modele ve conditionefekt içeren bir modele , iki modeli tekrar ANOVA kullanarak karşılaştırın ve conditionönemli bir yordayıcıdır.

good_data = data[data$appropriate == 1, ]
good_null_model   = lmer(dv ~ (1 | subject) + (1 | target), data = good_data)
good_mainfx_model = lmer(dv ~ condition + (1 | subject) + (1 | target), data = good_data)

anova(good_null_model, good_mainfx_model)

Çıktı:

## Data: good_data
## models:
## good_null_model: dv ~ (1 | subject) + (1 | target)
## good_mainfx_model: dv ~ condition + (1 | subject) + (1 | target)
##                   Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)  
## good_null_model    4 491 507   -241      483                          
## good_mainfx_model  5 487 507   -238      477  5.55      1      0.018 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

P değerleri hakkında daha fazla bilgi için bu soruyu kontrol edin lme4: stats.stackexchange.com/questions/118416/…
Tim

LmerTest :: anova () kullanılması, her terim için p değerleri olan anova tablolarını verecektir. Bu, genel modelleri karşılaştırmak yerine etkileşimi doğrudan incelemenize olanak tanır. @Tim ile ilişkili soruya bu yanıtı görün: stats.stackexchange.com/a/118436/35304
Kayle Sawyer

Yanıtlar:


3

Burada söyleyecek fazla bir şey göremiyorum. Bence iyi bir iş çıkardın.

İnsanların karmaşık karışık efekt modelleri için etkileri test etmenin ve p değerleri almasının tartıştığı birkaç yol vardır. Burada iyi bir genel bakış var . En iyisi hesaplama açısından yoğun yöntemler kullanmaktır (bootstrapping veya Bayesian yöntemleri), ancak bu çoğu insan için daha ileridir. İkinci en iyi (ve en uygun) yöntem bir olasılık oranı testi kullanmaktır. Yani nedir anova()(teknik ? Anova.merMod () ) yapıyor. Sınırlı maksimum olabilirlikten ziyade , tam maksimum olabilirlikle uyumlu olan modellerin olasılık oranı testini kullanmak önemlidir(REML). Öte yandan, son modeliniz ve yorumlama için REML kullanmak istiyorsunuz. Bu birçok insan için kafa karıştırıcı. Çıktınıza, size REML (seçeneğin ayarlandığı bunun nedeni ile modellerini uygun görüyoruz TRUEvarsayılan olarak lmer(). Yani test Ancak geçersiz olduğunu anlamına geleceğini bu tür yaygın bir hatadır, çünkü anova.merMod()bir içerdiği refitargüman hangi varsayılan olarak ayarlanmıştır TRUEve siz bunu değiştirmediniz.Bu yüzden paket geliştiricilerin öngörüleri sizi orada kurtardı.

Etkileşimi açma stratejinizle ilgili olarak, yaptığınız iyi. Etkileşimin test için tüm verileri kullandığını unutmayın. Önemli bir etkileşime sahip olmak mümkündür, ancak tabakalı testlerin hiçbirinin önemli olmaması, bu da bazı insanların kafasını karıştırmaz. (Yine de başınıza gelmemiş gibi görünüyor.)


0

Ben bir acemi kendim ve Zuur vd .. Ben kullanımından tavsiyelere uymanın lmegelen nlmepaketin yerine lme4ben bir başka doğrusal modele hiyerarşik hata yapısını eklemek gerektiğinde. Cevabım çok uzakta olabilir.

İki yorum:

(1) Sadece conditionalt kümede test etmenin mantıklı olduğundan emin değilim appropriate==1. Ana efektler için p değerleri elde etmek istiyorsanız Anova, 'araba' paketinden kullanabilirsiniz:

require(car)
Anova(M,type="III")# type III Sum of Squares. M was fitted using method=REML

Etkileşimi çözmek istiyorsanız, eşleştirilmiş karşılaştırmaları doğrudan (?) Çalıştırabilir veya yaptığınız işlemi ancak her iki alt kümede de yapabilirsiniz (örn appropriate==0. Burada alt kümesiyle ).

(2) En (1 | subject) + (1 | target)iyi hata yapısı olduğunu varsaymak yerine önce hata yapınızı seçmek isteyebilirsiniz . Yazdığınıza göre condition, bu bir konu faktörü içinde iken appropriate, ya özne arasında ya da hedef arasında bir faktördür. Konu içindeki ve / veya hedef içindeki faktörler için eğimler eklemek isteyebilirsiniz, örneğin: dv ~ condition + appropriate + (1+condition | subject) + (1 | target)konu içindeki faktör için rastgele bir eğim ekler condition. Hedefler / hedefler faktörleri için eğim gerekmez.

Şerefe


Teşekkürler. Olmaz Anovasadece içinde-konuyu taklit ve -target bağıntılar da olsa değil mi? Analizi sadece verilerle tekrarlamamın nedeni appropriate==1, kullanılan bir takım materyallerin bir test sonrası problemli, dolayısıyla 'uygunsuz' olduğu gösterilmiştir. Son olarak, modelin onlarsız daha iyi uyması için basit eğimler kullanmadım.
Eoin
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.