Rasgele bir etkinin önemli olup olmadığını nasıl test edebilirim?


34

Ne zaman rastgele bir efekt kullanılacağını ve ne zaman gereksiz olduğunu anlamaya çalışıyorum. Yaptığım kural, benim yaptığım 4 veya daha fazla grubun / şahsın varsa (15 kişisel geyik). Bu geyiklerin bazıları toplam 29 deneme için 2 veya 3 kez denenmiştir. Riskli manzaralar altında olmadıklarından farklı davranıp davranmadıklarını bilmek istiyorum. Böylece, bireyi rastgele etki olarak ayarlayacağımı düşündüm. Ancak şimdi bana bireyi rastgele bir etki olarak dahil etme gereği olmadığı söyleniyor çünkü cevaplarında çok fazla değişiklik yok. Çözemediğim şey, bireyi rastgele bir etki olarak ayarlarken gerçekten hesaba katılmış bir şey olup olmadığını test etmektir. Belki de ilk soru şudur: Bireyin iyi bir açıklayıcı değişken olup olmadığını ve bunun sabit bir etki - qq plotları olup olmadığını anlamak için hangi testi / teşhisi yapabilirim? histogramlar? scatter arazileri? Ve bu kalıplarda ne aramalıyım.

Modeli, bireyle rastgele bir etki olarak ve olmadan koştum, ancak sonra http://glmm.wikidot.com/faq dedikleri yerde okudum :

lmer modellerini karşılık gelen lm uyarlarıyla veya glmer / glm ile karşılaştırmayın; log olasılıkları orantılı değildir (yani, farklı katkı terimleri içerirler)

Ve burada, bunun rasgele etkisi olan veya olmayan bir modelle kıyaslayamayacağınız anlamına geldiğini düşünüyorum. Ama yine de aralarında ne karşılaştırmalıyım gerçekten bilemem.

Rastgele etkisi olan modelimde, RE'nin ne tür bir kanıt veya önemi olduğunu görmek için çıktıya bakmaya çalışıyordum.

lmer(Velocity ~ D.CPC.min + FD.CPC + (1|ID), REML = FALSE, family = gaussian, data = tv)

Linear mixed model fit by maximum likelihood 
Formula: Velocity ~ D.CPC.min + FD.CPC + (1 | ID) 
   Data: tv 
    AIC    BIC logLik deviance REMLdev
 -13.92 -7.087  11.96   -23.92   15.39
Random effects:
 Groups   Name        Variance Std.Dev.
 ID       (Intercept) 0.00000  0.00000 
 Residual             0.02566  0.16019 
Number of obs: 29, groups: ID, 15

Fixed effects:
              Estimate Std. Error t value
(Intercept)  3.287e-01  5.070e-02   6.483
D.CPC.min   -1.539e-03  3.546e-04  -4.341
FD.CPC       1.153e-04  1.789e-05   6.446

Correlation of Fixed Effects:
          (Intr) D.CPC.
D.CPC.min -0.010       
FD.CPC    -0.724 -0.437

Bireysel kimlikten sapmam ve SD'nin rastgele etki = 0 olduğunu görüyorsunuz. Bu nasıl mümkün olabilir? 0 ne anlama geliyor? Bu doğru mu? Öyleyse "rastgele etki olarak kimliği kullanarak hiçbir değişiklik olmadığı için gereksizdir" dedi arkadaşım doğru mu? Öyleyse bunu sabit bir etki olarak kullanır mıyım? Fakat çok az çeşitlilik olduğu gerçeği, bize zaten fazla bir şey anlatmayacağı anlamına gelmez mi?


Rastgele bir etkinin kesin 0 değişiminin elde edilmesiyle ilgili olarak istatistik.stackexchange.com/questions/115090 adresini ziyaret edin .
amip diyor Reinstate Monica

Yanıtlar:


21

Tahmin, IDvaryansı = 0, grup arası değişkenlik seviyesinin, modele rasgele etkileri dahil etmeyi garanti etmek için yeterli olmadığını; yani. Modelin dejenere.

Kendinizi doğru tanımladığınız gibi: büyük olasılıkla, evet; IDrastgele bir etki olarak gereksizdir. Bu varsayımı test etmek için akla ilk gelen şeyler:

  1. REML = FAIC'yi (veya genel olarak en sevdiğiniz IC'yi) rastgele etkilere sahip olan ve olmayan bir model arasında karşılaştırabilir ( her zaman kullanarak ) ve bunun nasıl gittiğini görebilirsiniz.
  2. Sen bakardım anova()iki modelin çıkışı.
  3. Orijinal modeliniz tarafından tanımlanan arka dağılımı kullanarak bir parametrik önyükleme yapabilirsiniz.

Seçimler 1 & 2'nin bir sorunu olduğunu unutmayın: Parametre alanının sınırlarında olan bir şeyi kontrol ediyorsunuz, bu yüzden teknik olarak sağlam değiller. Bunları yanlış anlayacağınızı ve pek çok insanın bunları kullandığını sanmıyorum (örneğin, lme4'ün geliştiricilerinden biri olan Douglas Bates kitabında kullanıyor, ancak test edilen parametre değerleri hakkında açıkça belirtilmiş olanları söylüyor) olası değerler kümesinin sınırında). Seçim 3, en sıkıcı olan 3'tür ancak gerçekte neler olup bittiği hakkında size en iyi fikri verir. Bazı insanlar da parametrik olmayan bootstrap kullanmak için caziptir, ancak bence sizden başlamak için parametrik varsayımlar yaptığınız gerçeği göz önüne alındığında bunları da kullanabilirsiniz.


6
RLRsim paketi, simülasyon tabanlı olabilirlik oran testlerini kullanarak rastgele efektleri test etmek için gerçekten uygun bir yoldur.
atrichornis

@atrichornis: +1. İlginç paket; Bunu bilmiyordum. Sadece koduna bir baktım, söyleyebileceğim oldukça açık. Keşke onu (ya da öyle bir şeyi) lme4özellikle şu anda mcmcsamp()kırılmış ve insanlar iyi bir p-değerleri vb.
usεr11852, Reinstate Monic’in

Doğru, karışık modeller R'de basit değildir. Çok sayıda yaklaşım ve geçici çözüm ... SAS'ı toparsam da, aynı belirsizliklerin bazılarını açıklıyor muyum? Ben Bolker, her iki paketin de ortak yapımcısıdır, dahil etmemek için sebepleri olabilir. Muhtemelen zaman!
atrichornis

4
Parametre boşluğu sınırındaki önyükleme, tutarsızlığa yol açan kendi sorunlarına ve sorunlarına sahiptir . Bootstrap her derde deva değil ve her şeyi çözeceğini varsayarak hafifçe torbaya atılmamalıdır.
StasK

2
Bir göz atın, argüman çok ince. Hatırlayabildiğim kadarıyla, önyükleme işlemini sıfırdan farklı bir dağıtımdan yapıyor olmanız gerçeğine bağlı; ve sınırda elde edilen standart olmayan dağılımlar göz önüne alındığında, düzenlilik koşulları ihlal edilir ve önyükleme dağılımı hedefe yakınlaşmaz. Parametrik olmayan bootstrapların, grup artıkları çıkarılarak hala inşa edilebileceğini düşünüyorum. Bununla birlikte, gruplar arasında gözlemlerin bağımsızlığının ihlali durumunda başka bir komplikasyon katmanı ortaya çıkabilir.
StasK

3

Önereceğim yaklaşımın makul olduğundan emin değilim, bu yüzden bu konu hakkında daha fazla şey bilenler yanılıyorsam beni düzeltir.

Teklifim, verilerinizde sabit değeri 1 olan ek bir sütun oluşturmaktır:

IDconst <- factor(rep(1, each = length(tv$Velocity)))

Ardından, bu sütunu rastgele efektiniz olarak kullanan bir model oluşturabilirsiniz:

fm1 <- lmer(Velocity ~ D.CPC.min + FD.CPC + (1|IDconst), 
  REML = FALSE, family = gaussian, data = tv)

Bu noktada, orijinal modelinizi rastgele efektle ID(diyelim fm0), tüm verileriniz için aynı IDolduğundan hesaba katmayan yeni modelle karşılaştırabilirsiniz IDconst.

anova(fm0,fm1)

Güncelleştirme

user11852 bir örnek istiyordu, çünkü kendi görüşüne göre yukarıdaki yaklaşım bile yürütülmez. Aksine, yaklaşımın işe yaradığını gösterebilirim (en azından lme4_0.999999-0şu anda kullandığımla).

set.seed(101)
dataset <- expand.grid(id = factor(seq_len(10)), fac1 = factor(c("A", "B"),
  levels = c("A", "B")), trial = seq_len(10))
dataset$value <- rnorm(nrow(dataset), sd = 0.5) +
      with(dataset, rnorm(length(levels(id)), sd = 0.5)[id] +
      ifelse(fac1 == "B", 1.0, 0)) + rnorm(1,.5)
    dataset$idconst <- factor(rep(1, each = length(dataset$value)))

library(lme4)
fm0 <- lmer(value~fac1+(1|id), data = dataset)
fm1 <- lmer(value~fac1+(1|idconst), data = dataset)

anova(fm1,fm0)

Çıktı:

  Data: dataset
  Models:
  fm1: value ~ fac1 + (1 | idconst)
  fm0: value ~ fac1 + (1 | id)

      Df    AIC    BIC  logLik  Chisq Chi Df Pr(>Chisq)
  fm1  4 370.72 383.92 -181.36                      
  fm0  4 309.79 322.98 -150.89 60.936      0  < 2.2e-16 ***

Bu son teste göre, fm0BIC'nin yanı sıra en düşük AIC'ye sahip olduğu için rastgele etkide kalmalıyız.

Güncelleme 2

Bu arada, aynı yaklaşım NW Galwey tarafından “Karışık Modellemeye Giriş: Regresyonun Ötesinde ve Varyans Analizi” nde 213-214.


Fikrini test ettin mi? Lütfen yanlış olduğumu kanıtla, ama fikrinin gerçekleşmeyeceğini bile düşünüyorum. Eğer IDconsttüm verileriniz için aynıdır o zaman herhangi bir gruplandırma yok. En az bir örneklenmiş seviyeye sahip olmak için bir gruplandırma faktörüne ihtiyacınız var ve modeli kurma şekliniz yok. "Rastgele gruplama" kullanmanın gerekçesine inanabilirim ama bu hep birlikte farklı bir top oyunu. Yaklaşımınızı bazı yapay verilerle test edin. Önerilen kurulumla lmer()çalışmayacağına kesinlikle inanıyorum . (Kullandığım lme4_0.99999911-1)
usεr11852 eski durumuna Monic diyor

@ user11852 Lütfen güncellememe bakın ve bu yaklaşımın da işe yarayıp yaramadığını bize bildirin lme4_0.99999911-1.
VLC

Z

3
Evet, önerdiğini yaptım; çalışmayacak / hesaplamayacak. Error in lFormula(formula = value ~ fac1 + (1 | idconst), data = dataset) : grouping factors must have at least 1 sampled level. Dediğim gibi, kavramsal olarak yanlış. Bazı numaralar vermek için yazılımı kandırma meselesi değil, mantıklı dediğiniz şey bu bir meseledir. Bu modelde rastgele etkinin sabit bir yapı olup olmadığını karşılaştırmak için ikinci bir karma modeliniz yok. Bunu hariç tutabilir ve bunun yerine doğrusal bir model deneyebilirsiniz.
usεr11852 Reinstate Monic diyor

1
İçindeki tek bir grup rastgele değişkeni tanımlayan eşleştirme güncellemesi lme4. Bu seçeneği belirlerseniz yapılabilir control=lmerControl(check.nlev.gtr.1="ignore"). Ben Bolker burada bahseder: github.com/lme4/lme4/issues/411 .
Robin Beaumont,

1

Daha 'ilk' soruyu cevaplamak istiyorum.

Bazı değişkenler nedeniyle bağımlı değişkenler arasında çeşitlilik gösteren bir tür heterojenlik olduğundan şüpheleniyorsanız, devam etmeli ve scatter ve box plot'larını kullanarak verileri çizmelisiniz. Kontrol edilmesi gereken bazı genel desenler, bu listeyi web'deki çeşitli kaynaklardan aşağıya koyuyorum.

Heteroskedastisite Kalıpları

Ek olarak, sabit değişken olup olmadığını görmek için bağımlı değişkeninizi faktör / tedavi gruplarına göre çizin. Değilse, rastgele etkiler veya ağırlıklı gerileme keşfetmek isteyebilirsiniz. Örneğin Aşağıdaki tablo, tedavi gruplarımdaki huni şeklindeki bir varyansa bir örnektir. Bu yüzden rastgele etkilere gitmeyi ve eğim ve kavramalar üzerindeki etkilerini test etmeyi seçiyorum.

Heteroskedastisiteyi kontrol etmek için kutu grafiği

Buradan, yukarıdaki cevaplar ana sorunuza cevap veriyor. Heteroskedastisiteyi kontrol eden testler de var, bunlardan biri burada - https://dergipark.org.tr/download/article-file/94971 . Ancak grup düzeyinde heteroskedasticity tespit etmek için herhangi bir test olup olmadığından emin değilim.


Lütfen OP'nin sorusuna cevap vermek için sadece "Cevabınız" alanını kullanın. Özgeçmiş bir soru-cevap sitesidir, tartışma forumu değil. Yazınızın sonuncusu, kalın kısmı, bu sorunun cevabı değil yeni bir sorudur. Yeni bir sorunuz varsa ASK QUESTION, üstteki griye tıklayın ve orada sorun. Burada yeniyken , yeni kullanıcılar için bilgi sahibi olan turumuza katılmak isteyebilirsiniz .
gung - 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.