Doğrusal karışık modellerde rastgele ve sabit etkili yapı nasıl seçilir?


19

Özne tasarımında iki yönlü aşağıdaki verileri göz önünde bulundurun:

df <- "http://personality-project.org/r/datasets/R.appendix4.data"
df <- read.table(df,header=T)
head(df)

Observation Subject Task Valence Recall
1           1     Jim Free     Neg      8
2           2     Jim Free     Neu      9
3           3     Jim Free     Pos      5
4           4     Jim Cued     Neg      7
5           5     Jim Cued     Neu      9
6           6     Jim Cued     Pos     10

Bunu karma doğrusal modeller kullanarak analiz etmek istiyorum. Tüm olası sabit ve rastgele etkiler göz önüne alındığında, birden fazla olası model vardır:

# different fixed effects with random-intercept
a0 <- lmer(Recall~1 + (1|Subject), REML=F,df)
a1 <- lmer(Recall~Task + (1|Subject), REML=F,df)
a2 <- lmer(Recall~Valence + (1|Subject), REML=F,df)
a3 <- lmer(Recall~Task+Valence + (1|Subject), REML=F,df)
a4 <- lmer(Recall~Task*Valence + (1|Subject), REML=F,df)

# different fixed effects with random-intercept-random-slope
b0 <- lmer(Recall~1 + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b1 <- lmer(Recall~Task + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b2 <- lmer(Recall~Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b3 <- lmer(Recall~Task+Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)
b4 <- lmer(Recall~Task*Valence + (1|Subject) + (0+Task|Subject) + (0+Valence|Subject), REML=F,df)

# different fixed effects with random-intercept-random-slope including variance-covariance matrix
c0 <- lmer(Recall~1 + (1 + Valence + Task|Subject), REML=F,df)
c1 <- lmer(Recall~Task + (1 + Valence + Task|Subject), REML=F,df)
c2 <- lmer(Recall~Valence + (1 + Valence + Task|Subject), REML=F,df)
c3 <- lmer(Recall~Task+Valence + (1 + Valence + Task|Subject), REML=F,df)
c4 <- lmer(Recall~Task*Valence + (1 + Valence + Task|Subject), REML=F,df)
  1. Bu bağlamda en uygun modeli seçmenin önerilen yolu nedir? Günlük olabilirlik oranı testlerini kullanırken önerilen prosedür nedir? Yukarı (boş modelden en karmaşık modele) modeller mi yoksa aşağı (en karmaşık modelden boş modele) modelleri mi üretiyorsunuz? Adım adım dahil etme veya hariç tutma? Yoksa tüm modellerin bir log-olasılık oranı testine girilmesi ve en düşük p-değerine sahip modeli seçmesi önerilir mi? Yuvalanmamış modelleri nasıl karşılaştırırım?

  2. Önce uygun sabit efekt yapısını, sonra uygun rasgele efekt yapısını mı yoksa başka bir yolunu mı bulmanız önerilir (Her iki seçenek için referanslar buldum ...)?

  3. Sonuçları bildirmenin önerilen yolu nedir? Log-olasılık oranı testinden p-değerinin, tam karışık modeli (söz konusu etki ile) azaltılmış modele (söz konusu etki olmadan) karşılaştırarak raporlaması. Ya da en uygun modeli bulmak için log-olasılık oranı testini kullanmak ve sonra en iyi modeldeki efektlerden p-değerlerini rapor etmek için lmerTest kullanmak daha mı iyi?

Yanıtlar:


18

Bunun gerçekten kanonik bir cevabı olduğundan emin değilim, ama deniyorum.

Bu bağlamda en uygun modeli seçmenin önerilen yolu nedir? Günlük olabilirlik oranı testlerini kullanırken önerilen prosedür nedir? Yukarı (boş modelden en karmaşık modele) modeller mi yoksa aşağı (en karmaşık modelden boş modele) modelleri mi üretiyorsunuz? Adım adım dahil etme veya hariç tutma? Yoksa tüm modellerin bir log-olasılık oranı testine girilmesi ve en düşük p-değerine sahip modeli seçmesi önerilir mi? Yuvalanmamış modelleri nasıl karşılaştırırım?

Hedeflerinizin ne olduğuna bağlıdır.

  • Genel olarak model seçimi konusunda çok , çok dikkatli olmalısınız (örneğin bu cevaba veya bu gönderiye ya da sadece Google "Harrell adım adım" ...).
  • Eğer (yani doğrulayıcı hipotez testi yapıyoruz) sizin p-değerleri anlamlı olan ilgilenen iseniz, gereken değil modeli seçimini yapmak. Bununla birlikte , modelin odak olmayan kısımlarında model seçimi yapıyorsanız, örneğin birincil ilgi alanınız sabit etkiler konusunda çıkarımsa, rastgele efektler üzerinde model seçimi yapmak, model seçim prosedürlerinin oldukça kötü olup olmadığı benim için açık değildir .
  • "Tüm modelleri bir olasılık oranı testine koymak" diye bir şey yoktur - olabilirlik oranı testi ikili bir prosedürdür. Eğer rastgele etkileri hakkında modeli seçimi (örn) yapmak istedim, muhtemelen bir "kerede tüm" nda olduğu gibi enformasyon kriterler kullanılarak yaklaşım öneriyoruz Bu örnekte olduğu en azından önler - Bazı kademeli yaklaşımları sorunları (ancak bir model seçimi daha genel).
  • Barr ve diğ. 2013 "Maksimal tut" Bellek ve Dil Dergisi (doi: 10.1016 / j.jml.2012.11.001) maksimal modeli kullanmanızı tavsiye eder (sadece).
  • Shravan Vasishth , veri kümesi çok büyük olmadığı (ve sinyal-gürültü oranı yüksek olmadığı sürece) bu tür modellerin yetersiz ve dolayısıyla sorunlu olacağını savunuyor.
  • Bir başka makul savunmasız yaklaşım, büyük ama makul bir modele uymaktır ve daha sonra uyum tekil ise, terimleri artık ortadan kalkana kadar kaldırmaktır.
  • Bazı uyarılarla ( GLMM SSS'de numaralandırılmıştır ), iç içe geçmiş modelleri farklı rasgele efektlerle karşılaştırmak için bilgi ölçütlerini kullanabilirsiniz (Brian Ripley aynı fikirde olmasa da , sf. 6'nın altına bakın )

Önce uygun sabit efekt yapısını, sonra uygun rasgele efekt yapısını mı yoksa başka bir yolunu mı bulmanız önerilir (Her iki seçenek için referanslar buldum ...)?

Kimsenin bildiğini sanmıyorum. Daha genel olarak model seçimi ile ilgili önceki cevaba bakınız. Hedeflerinizi yeterince açık bir şekilde tanımlayabiliyorsanız (ki az sayıda insan bunu yapar), soru cevaplanabilir olabilir. Her iki seçenek için referanslarınız varsa, sorunuzu bunları içerecek şekilde düzenlemek yararlı olacaktır ... (Değeri ne olursa olsun, bu örnek (yukarıda alıntılanmıştır) rastgele efektler bölümünü seçmek için bilgi ölçütlerini kullanır, ardından modelin sabit etkili kısmı.

Sonuçları bildirmenin önerilen yolu nedir? Log-olasılık oranı testinden p-değerinin, tam karışık modeli (söz konusu etki ile) azaltılmış modele (söz konusu etki olmadan) karşılaştırarak raporlaması. Ya da en uygun modeli bulmak için log-olasılık oranı testini kullanmak ve sonra en iyi modeldeki efektlerden p-değerlerini rapor etmek için lmerTest kullanmak daha mı iyi?

Bu başka bir zor soru. Marjinal etkileri bildirdiği şekilde rapor ederseniz, marjinalliklmerTest hakkında endişelenmeniz gerekir (örneğin, modelin bir -by- etkileşimi olduğunda ana etkilerinin tahminlerinin olup olmadığı Ave Banlamlı olup olmadığı ); Bu solucanlar büyük bir kutu, ama tavsiye olarak kullanırsanız biraz hafifletilir . Dengeli tasarımlar da biraz yardımcı olur. Gerçekten tüm bu çatlaklar üzerinde kağıt istiyorsanız, ben tavsiye ederim , bu size benzer çıktı verir , ancak bu sorunları ele almaya çalışacağını düşünüyorum .ABcontrasts="sum"afex::mixed()afex::mixedlmerTest


12

Mayıs 2017 Güncellemesi : Anlaşıldığı üzere , burada yazdıklarımın bir kısmı yanlıştır . Bazı güncellemeler yazı boyunca yapılır.


Ben zaten Ben Bolker tarafından söylenenlere çok katılıyorum (haykırış için teşekkürler afex::mixed()) ama bu konuda birkaç daha genel ve spesifik düşünce eklememe izin verin.

Sabit ve rastgele efektlere ve sonuçların nasıl raporlanacağına odaklanın

Jonathan Baron'un örnek verilerinde temsil edilen deneysel araştırma türü için, önemli soru genellikle manipüle edilmiş bir faktörün genel bir etkiye sahip olup olmadığıdır . Örneğin, genel bir ana etki veya etkileşim buluyor muyuz Task? Önemli bir nokta, bu veri setlerinde genellikle tüm faktörlerin tam deneysel kontrol altında olması ve rastgele atanmasıdır. Sonuç olarak, ilgi odağı genellikle sabit etkiler üzerinedir.
Bunun aksine, rastgele etki bileşenleri, ana soru için zorunlu olmayan sistematik varyasyonu (yani, etkinin boyutundaki bireyler arası farklılıkları) yakalayan "rahatsızlık" parametreleri olarak görülebilir. Bu bakış açısıyla, Barr ve ark. doğal olarak takip eder. Deneysel bir manipülasyonun tüm bireyleri aynı şekilde etkilemediğini hayal etmek kolaydır ve bunu kontrol etmek istiyoruz. Öte yandan, aşırı sığdırma tehlikesi nispeten küçük görünecek şekilde faktör veya seviye sayısı genellikle çok fazla değildir.

Sonuç olarak Barr ve ark. ve maksimum rasgele efekt yapısını belirtin ve sabit sonuçların testlerini ana sonuçlarım olarak rapor edin. Sabit etkileri test etmek için afex::mixed(), etki veya faktörlerin testlerini (parametrelerin testi yerine) raporladığı ve bu testleri bir şekilde mantıklı bir şekilde hesapladığı için kullanmanızı öneririm (örn. tek efekt kaldırılır, toplam-sıfır-kontrast kullanır, p -değerlerini hesaplamak için farklı yöntemler sunar , ...).

Örnek veriler ne olacak?

Verdiğiniz örnek verilerdeki sorun, bu veri kümesi için maksimum rastgele efekt yapısının, tasarımın hücre başına yalnızca bir veri noktası olduğu için aşırı doygun bir modele yol açmasıdır:

> with(df, table(Valence, Subject, Task))
, , Task = Cued

       Subject
Valence Faye Jason Jim Ron Victor
    Neg    1     1   1   1      1
    Neu    1     1   1   1      1
    Pos    1     1   1   1      1

, , Task = Free

       Subject
Valence Faye Jason Jim Ron Victor
    Neg    1     1   1   1      1
    Neu    1     1   1   1      1
    Pos    1     1   1   1      1

Sonuç olarak, lmermaksimum rastgele etki yapısındaki bobinler:

> lmer(Recall~Task*Valence + (Valence*Task|Subject), df)
Error: number of observations (=30) <= number of random effects (=30) for term
(Valence * Task | Subject); the random-effects parameters and the residual variance
(or scale parameter) are probably unidentifiable

Ne yazık ki, bu sorunla başa çıkma konusunda kararlaştırılan hiçbir bilgim yok. Ama biraz çizeyim ve tartışalım:

  1. İlk çözüm, en yüksek rastgele eğimi kaldırmak ve bu model için etkileri test etmek olabilir:

    require(afex)
    mixed(Recall~Task*Valence + (Valence+Task|Subject), df)
            Effect    F ndf  ddf F.scaling p.value
    1         Task 6.56   1 4.00      1.00     .06
    2      Valence 0.80   2 3.00      0.75     .53
    3 Task:Valence 0.42   2 8.00      1.00     .67

    Ancak, bu çözüm biraz ad-hoc ve aşırı motive değil.

    Mayıs 2017 Güncellemesi: Şu anda onayladığım yaklaşım bu. Bkz bu blog yazısı ve ben birlikte yazma değilim bölümün taslağını bölümüne "Geleneksel ANOVA için Rastgele Etkileri Yapılar Tasarımları".

  2. Alternatif bir çözüm (ve Barr ve arkadaşlarının tartışmaları tarafından savunulabilecek bir çözüm) her zaman en küçük etki için rastgele eğimleri kaldırmak olabilir. Ancak bunun iki problemi vardır: (1) En küçük etkinin ne olduğunu bulmak için hangi rasgele efekt yapısını kullanıyoruz ve (2) R, bu etkinin etkileşimi mevcuttur ( buraya bakınız ). Sonuç olarak, bu rastgele efekt yapısını elle kurmalı ve bu şekilde oluşturulmuş model matrisini lmer çağrısına geçirmelidir.

  3. Üçüncü bir çözüm, rastgele etkiler kısmının alternatif bir parametrelemesini, yani bu veriler için RM-ANOVA modeline karşılık gelen bir parametrelerini kullanmak olabilir. Ne yazık ki (?), lmer"Negatif varyanslara" izin vermemektedir , bu nedenle bu parametrelendirme tüm veri setleri için RM-ANOVA'ya tam olarak karşılık gelmez , burada ve başka yerlerde tartışmaya bakınız (örneğin burada ve burada ). Bu veriler için "lmer-ANOVA" şöyle olacaktır:

    > mixed(Recall~Task*Valence + (1|Subject) + (1|Task:Subject) + (1|Valence:Subject), df)
            Effect    F ndf  ddf F.scaling p.value
    1         Task 7.35   1 4.00      1.00     .05
    2      Valence 1.46   2 8.00      1.00     .29
    3 Task:Valence 0.29   2 8.00      1.00     .76

Tüm bu problemler göz önüne alındığında lmer, maksimum rastgele etki yapısı problemi için daha üzerinde anlaşılmış bir çözüm mevcut olmadığı sürece, tasarımın her hücresi için sadece bir veri noktası olan veri setlerini yerleştirmek için kullanmam .

  1. Bunun yerine, ben yine de klasik ANOVA'yı kullanabilirdim. İçin sarmalayıcılarının birini kullanarak car::Anova()içinde afexsonuçları olacaktır:

    > aov4(Recall~Task*Valence + (Valence*Task|Subject), df)
            Effect         df  MSE      F  ges   p
    1      Valence 1.44, 5.75 4.67   1.46  .02 .29
    2         Task       1, 4 4.08 7.35 +  .07 .05
    3 Valence:Task 1.63, 6.52 2.96   0.29 .003 .71

    afexArtık , post-hoc testler için aovgeçilebilen modelin geri gönderilmesine izin verdiğini unutmayın lsmeans(ancak etkilerin testi için bildirilenler car::Anovahala daha makul):

    > require(lsmeans)
    > m <- aov4(Recall~Task*Valence + (Valence*Task|Subject), df, return = "aov")
    > lsmeans(m, ~Task+Valence)
     Task Valence lsmean       SE   df lower.CL upper.CL
     Cued Neg       11.8 1.852026 5.52  7.17157 16.42843
     Free Neg       10.2 1.852026 5.52  5.57157 14.82843
     Cued Neu       13.0 1.852026 5.52  8.37157 17.62843
     Free Neu       11.2 1.852026 5.52  6.57157 15.82843
     Cued Pos       13.6 1.852026 5.52  8.97157 18.22843
     Free Pos       11.0 1.852026 5.52  6.37157 15.62843
    
    Confidence level used: 0.95 

(+1) "Ne yazık ki, lmer negatif korelasyonlara izin vermiyor" - bu "negatif varyanslara izin vermiyor" olmamalı mı? Ayrıca, yeniden Güncelleme: Bu cevapta "yanlış-ish" tam olarak nedir hakkında daha açık olabilir?
amip, Reinstate Monica'nın

( Bağlantılı yazıyı okudum ve orada ana mesaj, # 1 olarak listelenen yaklaşımın düşündüğünüzden daha koşer olduğu anlaşılıyor. Doğru mu? ).
amip, Reinstate Monica'nın

@amoeba Evet, haklısın. Cevabımı buna göre güncellemek için çok tembeltim.
Henrik

@amoeba Ve sen de doğru ilişkilerdesin. lmernegatif varyanslara değil, varyans bileşenleri arasında bariz şekilde negatif korelasyonlara izin vermektedir.
Henrik

1
Bazı düzenlemeler yaptım, sizi yanlış temsil etmediğimden emin olmak isteyebilirsiniz.
amip diyor Reinstate Monica
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.