1 veya -1'e eşit rastgele etkiler korelasyonu ile ne yapmalı?


9

Karmaşık maksimal karışık modellerle (verilen veri ve model için olası tüm rastgele etkileri tahmin etmek) uğraşırken nadir görülen bir durum mükemmel değildir (+1 veya -1) veya bazı rastgele etkiler arasında neredeyse mükemmel bir korelasyon. Tartışma amacıyla aşağıdaki model ve model özetini inceleyelim

Model: Y ~ X*Cond + (X*Cond|subj)

# Y = logit variable  
# X = continuous variable  
# Condition = values A and B, dummy coded; the design is repeated 
#             so all participants go through both Conditions  
# subject = random effects for different subjects  

Random effects:
 Groups  Name             Variance Std.Dev. Corr             
 subject (Intercept)      0.85052  0.9222                    
         X                0.08427  0.2903   -1.00            
         CondB            0.54367  0.7373   -0.37  0.37      
         X:CondB          0.14812  0.3849    0.26 -0.26 -0.56
Number of obs: 39401, groups:  subject, 219

Fixed effects:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept)       2.49686    0.06909   36.14  < 2e-16 ***
X                -1.03854    0.03812  -27.24  < 2e-16 ***
CondB            -0.19707    0.06382   -3.09  0.00202 ** 
X:CondB           0.22809    0.05356    4.26 2.06e-05 ***

Bu mükemmel ilişkilerin arkasındaki varsayılan neden, sahip olduğumuz veriler için çok karmaşık bir model yaratmış olmamızdır. Bu durumlarda verilen ortak tavsiye, aşırı parametreli katsayıları 0'a sabitlemek için (örn. Matuschek ve diğerleri, 2017; kağıt ), çünkü bu tür dejenere modeller gücü düşürme eğilimindedir. Azaltılmış bir modelde sabit etkilerde belirgin bir değişiklik gözlemlersek, bunu kabul etmeliyiz; herhangi bir değişiklik yoksa, orijinali kabul etmede sorun yoktur.

Bununla birlikte, sadece RE (rastgele etkiler) için kontrol edilen sabit etkilerle değil, aynı zamanda RE yapısıyla da ilgilendiğimizi varsayalım. Verilen durumda, Intercepteğimin Xsıfır olmayan negatif korelasyona sahip olduğunu varsaymak teorik olarak sağlam olacaktır . Birkaç soru takip ediyor:

  1. Bu gibi durumlarda ne yapmalı? Mükemmel korelasyonu rapor etmeli ve verilerimizin "gerçek" korelasyonu tahmin etmek için "yeterince iyi" olmadığını söylemeli miyiz? Yoksa 0 korelasyon modelini rapor etmeli miyiz? Ya da "önemli" olanın artık mükemmel olmayacağını ümit ederek, başka bir korelasyonu 0 olarak ayarlamaya çalışmalıyız? Burada% 100 doğru cevaplar olduğunu düşünmüyorum, çoğunlukla görüşlerinizi duymak isterim.

  2. Diğer parametreler arasındaki korelasyonları etkilemeden 2 spesifik rasgele etkinin korelasyonunu 0'a sabitleyen kod nasıl yazılır?


Paket nlme, rastgele efektlerin varyans-kovaryans matrisi hakkında ince kontrol sağlar. Buna gerçekten hiç ihtiyacım olmadı, ama S ve S-PLUS (Pinheiro ve Bates, 2000) 'de Mixed-Effects Modellerini tekrar okurdum .
Roland

3
Radikal alternatif yani rastgele etkiler yapıları biraz bilgilendirici priors (örn aracılığı ile Bayes modeli sığacak modeli düzene etmektir blme, MCMCglmm, rstanarm, brms...)
Ben Bolker

@BenBolker Ben. Bu radikal bir fikir olduğundan emin değilim, çünkü düzensiz bir model takmak, bir modele uymak için daha radikal bir yol olabilir;)
D_Williams

Harika cevaplar için hepinize teşekkür ederim ... Maalesef birkaç gün çevrimdışı kaldım ama geri döndüm.
User33268

Yanıtlar:


13

Tekil rasgele etkili kovaryans matrisleri

+1 veya -1 rasgele etki korelasyon tahmini elde etmek, optimizasyon algoritmasının "bir sınıra" çarptığı anlamına gelir: korelasyonlar +1'den yüksek veya -1'den düşük olamaz. Açık bir yakınsama hatası veya uyarısı olmasa bile, bu potansiyel olarak yakınsama ile ilgili bazı problemleri gösterir, çünkü gerçek korelasyonların sınırda yatmasını beklemiyoruz. Söylediğiniz gibi, bu genellikle tüm parametreleri güvenilir bir şekilde tahmin etmek için yeterli veri olmadığı anlamına gelir. Matuschek ve diğ. 2017 , bu durumda gücün tehlikeye atılabileceğini söylüyor.

Bir sınıra ulaşmanın başka bir yolu da 0'ın varyans tahminini elde etmektir: Verilerdeki bazı değişikliklere rağmen neden karışık modelimde rastgele bir efektin sıfır varyansını elde ediyorum?

Her iki durum da rastgele etkilerden oluşan dejenere bir kovaryans matrisi elde etmek olarak görülebilir (örneğin çıktı kovaryans matrisiniz ); sıfır varyans veya mükemmel bir korelasyon, kovaryans matrisinin tam sıralama olmadığı ve [en azından] özdeğerlerinden birinin sıfır olduğu anlamına gelir. Bu gözlem, derhal dejenere bir kovaryans matrisi elde etmenin başka , daha karmaşık yollarının olduğunu düşündürmektedir : biri sıfırlar veya mükemmel korelasyonlar olmadan kovaryans matrisine sahip olabilir, ancak yine de sıralama eksikliği (tekil). Bates ve diğ. 2015 Parsimonious Karışık Modeller4×44×4(yayınlanmamış ön baskı) elde edilen kovaryans matrisinin tekil olup olmadığını kontrol etmek için ana bileşen analizi (PCA) kullanmanızı öneririz. Eğer öyleyse, bu duruma yukarıdaki tekil durumlarla aynı şekilde davranılmasını önerirler.

Peki ne yapmalı?

Bir modelin tüm parametrelerini güvenilir bir şekilde tahmin etmek için yeterli veri yoksa, modeli basitleştirmeyi düşünmeliyiz. Örnek modelinizi alarak, X*Cond + (X*Cond|subj)basitleştirmenin çeşitli olası yolları vardır:

  1. Rastgele efektlerden birini, genellikle en yüksek dereceli korelasyonu kaldırın:

    X*Cond + (X+Cond|subj)
  2. Tüm korelasyon parametrelerinden kurtulun:

    X*Cond + (X*Cond||subj)

    Güncelleme: @Henrik'in belirttiği gibi, ||sözdizimi yalnızca soldaki tüm değişkenler sayısalsa korelasyonları kaldıracaktır. Kategorik değişkenler (örneğin Cond) söz konusuysa, onun uygun afexpaketini (veya hantal manuel çözümlerini) kullanmayı tercih etmesi gerekir . Daha fazla ayrıntı için cevabına bakınız.

  3. Terimi birkaç taneye ayırarak bazı korelasyon parametrelerinden kurtulun, örneğin:

    X*Cond + (X+Cond|subj) + (0+X:Cond|subj)
  4. Kovaryans matrisini belirli bir şekilde sınırlayın, örneğin önerdiğiniz gibi belirli bir korelasyonu (sınıra çarpan) sıfıra ayarlayarak. Bunu lme4başarmak için yerleşik bir yol yoktur . Bazı akıllı hack'lerle bunu nasıl yapacağınızı göstermek için @ BenBolker'ın SO'ya cevabı bakınız .

Söylediklerinin aksine, Matuschek ve ark. 2017 özellikle # 4 önermektedir. Matuschek ve ark. 2017 ve Bates vd. 2015, a la Barr ve ark. 2013 ve sonra kovaryans matrisi tam dereceye kadar karmaşıklığı azaltır. (Dahası, gücü arttırmak için genellikle karmaşıklığı daha da azaltmayı tavsiye ederler.) Güncelleme: Buna karşılık Barr ve ark. SADECE model yakınsamazsa karmaşıklığı azaltmanızı öneririz; tekil kovaryans matrislerini tolere etmeye isteklidirler. Bakınız @ Henrik'in cevabı.

Eğer biri Bates / Matuschek ile hemfikirse, o zaman "en az hasar" yaparken işi yapan birini bulmak için karmaşıklığı azaltmanın farklı yollarını denemek iyi olur. Yukarıdaki listeme bakıldığında, orijinal kovaryans matrisinin 10 parametresi vardır; # 1 6 parametreye, # 2 4 parametreye, # 3 7 parametreye sahiptir. Hangi modelin mükemmel korelasyonlardan kurtulacağını söylemeye gerek yoktur.

Peki ya bu parametreyle ilgileniyorsanız?

Yukarıdaki tartışma rastgele etki kovaryans matrisini bir sıkıntı parametresi olarak ele alır. Anlamlı bir tam sıralı çözüm elde etmek için "vazgeçmek" zorunda olduğunuz bir korelasyon parametresiyle ilgileniyorsanız, ne yapacağınız konusunda ilginç bir soru sorarsınız.

Korelasyon parametresinin sıfırda sabitlenmesinin ranefilintisiz BLUP'lar ( ) sağlamayacağını unutmayın; aslında, o kadar da etkilenmeyebilirler (bkz. @ Placidia'nın gösteri için cevabı ). Yani bir seçenek BLUP'ların korelasyonlarına bakmak ve bunu rapor etmek olacaktır.

Belki de daha az çekici olan bir başka seçenek, tedaviyi subjectsabit bir etki olarak kullanmak Y~X*cond*subj, her bir konu için tahminler almak ve aralarındaki korelasyonu hesaplamak olacaktır. Bu, Y~X*condher bir denek için ayrı ayrı regresyonların çalıştırılmasına eşdeğerdir ve onlardan korelasyon tahminleri alır.


Ayrıca Ben Bolker'ın karma modeli SSS'deki tekil modeller bölümüne bakın :

Aşırı takılmış karışık modellerin tekil uyumlara neden olması çok yaygındır. Teknik olarak, tekillik , Cholesky faktörünün çapraz elemanlarına karşılık gelen (varyans-kovaryans Cholesky ayrışması) parametrelerinin bir kısmının tam olarak sıfır olduğu, yani mümkün olan alanın kenarı olan sıfır olduğu veya eşdeğer olarak varyans-kovaryans matrisinin sıfır olduğu anlamına gelir özdeğerler (yani, pozitif tanımdan ziyade pozitif semidefinittir) veya (neredeyse eşdeğer olarak) varyansların bir kısmının sıfır veya bazı korelasyonların +/- 1 olduğu tahmin edilmektedir.θ


1
Örneğimin gösterdiği şey, (Machine||Worker) lmertahminler için bir varyansın olduğundan daha fazla olmasıdır (Machine|Worker). Peki lmeriçin yaptığı ||faktörler tarafından tarif edilemez birlikte 'Bu sadece faktörler arasındaki korelasyon, ancak bir kategorik faktör seviyeleri arasında kaldırır.' Bu biraz garip bir şekilde rastgele bir etki yapısını değiştiren (genleştiği (Machine||Worker)için (1|Worker) + (0+Machine|Worker)bu nedenle ek varyans). Düzenlememi değiştirmekten çekinmeyin. Asıl nokta, bu ifadelerde sayısal ve kategorik değişkenler arasındaki ayrımın açıklığa kavuşturulması gerektiğidir.
Henrik

1
Hayır, ayrıca kendiniz görün, ikili değişkenler ile çalışmaz: machines2 <- subset(Machines, Machine %in% c("A", "B")); summary(lmer(score ~ Machine + (Machine || Worker), data=machines2)). Genel olarak bu genişlemeden dolayı faktörlerle çalışmaz ve faktörlerle Rilgilenme şekli model.matrix.
Henrik

@amoeba: Bence ranefrastgele etkiler arasındaki korelasyonu incelemek için değerlere dönmeyi önererek ilginç bir noktaya değindin . Bu konuda çok derin değilim, ama genellikle çıkarılan değerlerle çalışmanın ranefdeğil, tahmin edilen korelasyonlar ve varyanslarla çalışmanın tavsiye edilmediğini biliyorum . Bununla ilgili fikrin nedir? Ayrıca, gözden geçirene, modeldeki korelasyonun varsayılmadığını nasıl açıklayacağını bilmiyorum, ancak yine de çıkarılan değerlerin korelasyonunu hesaplıyoruz. Bu hiç mantıklı değil
User33268 18:18

1
@RockyRaccoon Evet, tahmin edilen korelasyon parametresini kullanmanın / rapor etmenin daha iyi olduğunu düşünüyorum ama burada tartışmalı bir şekilde tahmin edemediğimiz durumdan bahsediyoruz çünkü 1'e yaklaşıyor. corr = 1 ile çözüme ulaşmak için [alıntılar] 'daki tavsiyenin ardından azaltılmış bir model kullandık [detaylar]. Yine, korelasyonu dahil etmediğinizde, onları ilişkisiz olarak ele almak için modeli kısıtlamıyorsunuz! Sadece değildir modelleme açıkça bu ilişkiyi.
amo

Bir sorum daha var: Sıfıra yakın varyanslar ve rastgele efektlerin mükemmel ve mükemmele yakın korelasyonları parametrelerin gerçek değeri hakkında bir şey ima ediyor mu? Örneğin, -1 korelasyonları gerçek korelasyonun en azından negatif olduğunu ve / veya en azından sıfır olmayan olduğunu ima ediyor mu? Daha somut olarak, gerçekte 0 olan korelasyonu tahmin etmeye çalışırsak, -1 tahminimiz olabilir mi?
20:18

9

Bu konudaki mevcut tartışmanın harika bir özetini veren amoabe'nin cevabında söylenen her şeye katılıyorum. Birkaç ek nokta eklemeye çalışacağım ve aksi takdirde bu noktaları da özetleyen son karma model kursumun el kitabına bakacağım .


Korelasyon parametrelerinin (amipa cevabındaki seçenek 2 ve 3) bastırılması, faktörler için değil, ||yalnızca sayısal ortak değişkenler lmeriçin geçerlidir. Bu, Reinhold Kliegl'in koduyla bazı ayrıntılarda tartışılmıştır .

Ancak, benim afexpaket expand_re = TRUEçağrısında argüman varsa da faktörler arasındaki korelasyonu bastırmak için işlevsellik sağlar mixed()(ayrıca fonksiyona bakınız lmer_alt()). Bunu esasen Reinhold Kliegl tarafından tartışılan yaklaşımı uygulayarak yapar (yani faktörlerin sayısal değişkenlere aktarılması ve bunlar üzerindeki rastgele etkiler yapısını belirtmek).

Basit bir örnek:

library("afex")
data("Machines", package = "MEMSS") # same data as in Kliegl code

# with correlation:
summary(lmer(score ~ Machine + (Machine  | Worker), data=Machines))
# Random effects:
#  Groups   Name        Variance Std.Dev. Corr       
#  Worker   (Intercept) 16.6405  4.0793              
#           MachineB    34.5467  5.8776    0.48      
#           MachineC    13.6150  3.6899   -0.37  0.30
#  Residual              0.9246  0.9616              
# Number of obs: 54, groups:  Worker, 6

## crazy results:
summary(lmer(score ~ Machine + (Machine  || Worker), data=Machines))
# Random effects:
#  Groups   Name        Variance Std.Dev. Corr     
#  Worker   (Intercept)  0.2576  0.5076            
#  Worker.1 MachineA    16.3829  4.0476            
#           MachineB    74.1381  8.6103   0.80     
#           MachineC    19.0099  4.3600   0.62 0.77
#  Residual              0.9246  0.9616            
# Number of obs: 54, groups:  Worker, 6

## as expected:
summary(lmer_alt(score ~ Machine + (Machine  || Worker), data=Machines))
# Random effects:
#  Groups   Name         Variance Std.Dev.
#  Worker   (Intercept)  16.600   4.0743  
#  Worker.1 re1.MachineB 34.684   5.8894  
#  Worker.2 re1.MachineC 13.301   3.6471  
#  Residual               0.926   0.9623  
# Number of obs: 54, groups:  Worker, 6

Bilmeyenler için afex, karışık modeller için ana işlevsellik, sabit etkiler için p-değerleri sağlamaktır, örn .:

(m1 <- mixed(score ~ Machine + (Machine  || Worker), data=Machines, expand_re = TRUE))
# Mixed Model Anova Table (Type 3 tests, KR-method)
# 
# Model: score ~ Machine + (Machine || Worker)
# Data: Machines
#    Effect      df        F p.value
# 1 Machine 2, 5.98 20.96 **    .002
# ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘+’ 0.1 ‘ ’ 1

summary(m1)  
# [...]
# Random effects:
#  Groups   Name         Variance Std.Dev.
#  Worker   (Intercept)  27.4947  5.2435  
#  Worker.1 re1.Machine1  6.6794  2.5845  
#  Worker.2 re1.Machine2 13.8015  3.7150  
#  Residual               0.9265  0.9626  
# Number of obs: 54, groups:  Worker, 6
# [...]

Barr ve ark. (2013) makalesi, tesadüf etkileri yapısının amoeba cevabında belirtilenden daha az düşürülmesini önermekte daha temkinlidir. Son zamanlarda yapılan bir twitter borsasında şunları yazdı:

  • "Modeli azaltmak bilinmeyen bir anti-muhafazakârlık riski getiriyor ve eğer varsa dikkatli bir şekilde yapılmalıdır." ve
  • "Temel kaygım, insanların modelin azaltılmasıyla ilişkili riskleri anlamaları ve bu riskin en aza indirilmesinin, yaygın olarak benimsenenden daha muhafazakar bir yaklaşım gerektirmesidir (örneğin, her eğim .05'te test edilmiştir)."

Bu yüzden dikkatli olunması önerilir.


Yorumculardan biri olarak neden Bates ve ark. (2015) bildirisi yayınlanmadı. Ben ve diğer iki hakem (burada imzalı, ancak isimsiz kalacak) PCA yaklaşımı ile ilgili bazı eleştiriler aldık (ilkesiz görünüyor ve güç açısından üstün olduğuna dair bir kanıt yok). Ayrıca, her üçünün de makalenin rastgele etkiler yapısının nasıl belirleneceği konusuna odaklanmadığını, aynı zamanda GAMM'leri tanıtmaya çalıştığını eleştirdiğine inanıyorum. Böylece Bates ve ark. (2015) makalesi Matuschek ve ark. (2017) , rastgele etkiler yapısı konusunu simülasyonlarla ele alan yazı ve Baayen ve ark. (2017) GAMM'leri tanıtan bildiri.

Bates ve ark. taslak burada bulunabilir . IIRC, diğer incelemelerde benzer ana noktalar vardı.


TAMAM. Ardından, yaptığınız bazı noktaları açıklığa kavuşturmak için bazı küçük düzenlemeler / güncellemeler ekleyebilirim. Bates baskı öncesi ile ilgili olarak, çeşitli açılardan yetersiz olabilir. Fakat Bates ve ark. tekil kovaryans matrislerinin + 1 / -1 korelasyonları ile tam olarak aynı problem olduğu. Matematiksel olarak, hiçbir fark yoktur. Yani eğer biz bu mükemmel korelasyon uzlaşı gücünü kabul, o zaman biz tekil cov çok dikkatli olmalıdır. açıkça gösteren simülasyonların yokluğunda bile. Bunun "ilkesiz" olduğunu kabul etmiyorum.
amip

@amoeba lmer_alttemel olarak sözdizimine izin verdiği tek farkla tam olarak lmer(hatta çift glmer) çalışır ||. Bu yüzden neden afexpahasına kaçınmak isteyeceğinizden emin değilim . Takmadan bile çalışmalıdır (yani afex::lmer_alt(...)).
Henrik

@amoeba Temelde Reinhold Kliegl tarafından kodda açıklanan yaklaşımdır (yani, rastgele etkileri genişletmek). Formülün her rastgele efekt terimi için bir model matrisi oluşturur (yani, faktörleri sayısal değişkenlere dönüştürür). Bu model.matrix daha sonra cbindveridir. Daha sonra formüldeki rastgele efektler terimi, yeni oluşturulan sütunların her birinin bir + ile birleştirildiği yeni bir terim ile değiştirilir. Github.com/singmann/afex/blob/master/R/mixed.R adresindeki
Henrik

Solundaki kategorik değişkenlerle ilgili olarak ||, bu çok önemli bir noktadır, onu açtığınız ve bana açıkladığınız için teşekkürler (cevabımı yansıtmak için düzenledim). Ben lmer_altin bu işlevselliğini seviyorum afex. Burada lmer, örneğin herhangi bir ek ön işlem yapmadan vanilya çağrısı ile aynı çıktıyı elde etmenin eksiksiz olduğunu belirteceğim (1+dummy(Machine,'B')+dummy(Machine,'C') || Worker). Kategorik değişken birçok seviyeye sahip olduğunda bu açıkça çok külfetlidir.
amip

2
@amoeba dummy()Rastgele etkiler toplamdan sıfıra kontrast kullandığında (modelin etkileşimler olması durumunda kullanılması gereken) değil, yalnızca varsayılan tedavi kontrastlarıyla birlikte kullanılan yaklaşımın işe yaradığını belirtmek önemlidir . Örneğin, lmer_altçağrı için yukarıdaki örnekte varyans bileşenlerini çağrı ile karşılaştırırsanız görebilirsiniz mixed.
Henrik

1

Maksimum olasılık tahminini kullanırken de bu problemi yaşadım - sadece MLwiN yazılımı aracılığıyla uygulanan Goldstein IGLS algoritmasını kullanıyorum, R'de LME4'ü kullanmıyorum. yazılım. Tahminleri değiştirdiğimde çözülen 3'ün üzerinde bir korelasyonum bile vardı. IGLS kullanılarak korelasyon, kovaryansın ilişkili varyansların ürününün kare kökünün ürününe bölünmesiyle hesaplanır ve bu, kurucu tahminlerin her birindeki belirsizliği hesaba katmaz.

IGLS yazılımı, kovaryansın bir korelasyon içerdiğini 'bilmez' ve sadece sabit, doğrusal, karesel vb. Varyans fonksiyonunun tahminlerini hesaplar. Aksine, MCMC yaklaşımı, kovaryansların tahminindeki belirsizliğin, varyansların tahmininde dikkate alınması için, iyi özelliklere ve tam hata oranlamasına sahip varyanslara ve kovaryanslara karşılık gelen çok değişkenli bir normal dağılımdan örneklerin varsayımı üzerine inşa edilmiştir. ve tam tersi.

MLwin, IGLS tahminlerine sahip MCMC tahmin zinciridir ve negatif olmayan kesin varyans kovaryans matrisinin, örneklemeye başlamadan önce başlangıçta kovaryans sıfıra değiştirilerek değiştirilmesi gerekebilir.

Çalışan bir örnek için bkz.

MLwiN 3, Cilt 1 (güncellenmiş Eylül 2017) kullanarak bağlamsallığı, heterojenliği ve değişimi analiz etmek için çok düzeyli modeller geliştirmek; Cilt 2 de RGate'de

https://www.researchgate.net/publication/320197425_Vol1Training_manualRevisedSept2017

Bölüm 10 Ek

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.