Rastgele etki eklemek katsayı tahminlerini etkiler


10

Bana her zaman rastgele etkilerin sadece varyansı (hata) etkilediği ve sabit etkilerin sadece ortalamayı etkilediği öğretildi. Ama rastgele etkilerin ortalamayı da etkilediği bir örnek buldum - katsayı tahmini:

require(nlme)
set.seed(128)
n <- 100
k <- 5
cat <- as.factor(rep(1:k, each = n))
cat_i <- 1:k # intercept per kategorie
x <- rep(1:n, k)
sigma <- 0.2
alpha <- 0.001
y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
plot(x, y)

# simulate missing data
y[c(1:(n/2), (n*k-n/2):(n*k))] <- NA

m1 <- lm(y ~ x)
summary(m1)

m2 <- lm(y ~ cat + x)
summary(m2)

m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit)
summary(m3)

xModelden beklenen katsayının m1-0.013780 m3olduğunu, modelden 0.0011713 olduğunu - her ikisinin de sıfırdan önemli ölçüde farklı olduğunu görebilirsiniz.

Eksik verileri simüle eden satırı kaldırdığımda, sonuçların aynı olduğunu unutmayın (tam matristir).

Neden?

Not: Lütfen profesyonel bir istatistikçi değilim, bu yüzden çok fazla matematikle cevap vermek üzereyseniz, lütfen aptallar için basit bir özet yapın :-)


Sanırım m3bunun yerine " modelden 0.0011713" demek istiyorsun m2.
usεr11852

Üzgünüm @ user11852, evet haklısın, teşekkürler. (BTW, m2bunun için de geçerlidir ( başka bir soruya tabidir )
Meraklı

Yanıtlar:


11

"Bana her zaman rastgele etkilerin sadece varyansı (hata) etkilediği ve sabit etkilerin sadece ortalamayı etkilediği öğretildi."

Bildiğiniz gibi, bu yalnızca sürekli öngörücülere sahip olmayan dengeli, tam (yani eksik veri yok) veri kümeleri için geçerlidir. Başka bir deyişle, klasik ANOVA metinlerinde tartışılan veri / model türleri için. Bu ideal koşullar altında, sabit etkiler ve rastgele etkiler birbirinden bağımsız olarak tahmin edilebilir.

Bu koşullar geçerli olmadığında (çok sık "gerçek dünyada" olmadığı için), sabit ve rastgele etkiler bağımsız değildir. İlginç bir yanı olarak, klasik karma ANOVA durumunda olduğu gibi biraz matris cebiri ile tam olarak çözülmek yerine, "modern" karışık modellerin yinelemeli optimizasyon yöntemleri kullanılarak tahmin edilmesinin nedeni budur: sabit etkileri tahmin etmek için rastgele etkileri bilmek, ama rastgele etkileri tahmin etmek için, sabit etkileri bilmek zorunda! Mevcut soru ile daha ilgili olarak, bu aynı zamanda veriler dengesiz / eksik olduğunda ve / veya modelde sürekli öngörücüler olduğunda, karışık modelin rastgele etkiler yapısının ayarlanmasının modelin sabit kısmının tahminlerini değiştirebileceği anlamına gelir. ve tam tersi.

Düzenle 2016-07-05. Yorumlardan: " Sürekli öngörücülerin modelin sabit kısmının tahminlerini neden etkileyeceğine dair ayrıntı verebilir veya alıntı yapabilir misiniz? "

Modelin sabit kısmı için tahminler modelinin rastgele kısmı için tahminler bağlıdır - olduğunu tahmin varyans bileşenleri - eğer (ama sadece) varyansı belirleyicileri kümeler arasında farklılık. Bu, tahmin edicilerin herhangi birinin sürekli olması durumunda neredeyse kesinlikle doğru olacaktır (en azından "gerçek dünya" verilerinde - teoride bunun, örneğin yapılandırılmış bir veri kümesinde doğru olmaması mümkündür).


Sürekli öngörücülerin modelin sabit kısmının tahminlerini neden etkileyeceğine dair ayrıntı verebilir veya alıntı yapabilir misiniz?
robin.datadrivers

@ robin.datadrivers Tamam Bunun hakkında biraz ekledim
Jake Westfall

3

Birinci düzeyde, bence tüm popülasyon değerlerine doğru çekmeyi görmezden geliyorsunuz ; “ karışık etkiler modelinden konu başına eğimler ve kesişmeler nüfus tahminlerine konu-içindeki en küçük kareler tahminlerinden daha yakındır. ” [ref. 1]. Aşağıdaki bağlantı muhtemelen yardımcı olacaktır ( Karışık modellerime bakmak için uygun tanımlamalar nelerdir? ), Mike Lawrence'ın cevabına bakın).

Ayrıca, oyuncak örneğinizde marjinal olarak şanssız olduğunuzu düşünüyorum, çünkü eksik değerler olmaması durumunda aynı tahminde bulunmanıza neden olan mükemmel dengeli bir tasarıma sahipsiniz.

Şimdi aynı değere sahip ve eksik değeri olmayan aşağıdaki kodu deneyin:

 cat <- as.factor(sample(1:5, n*k, replace=T) ) #This should be a bit unbalanced.
 cat_i <- 1:k # intercept per kategorie
 x <- rep(1:n, k)
 sigma <- 0.2
 alpha <- 0.001
 y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma) 

 m1 <- lm(y ~ x)  
 m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit) 

 round(digits= 7,fixef(m3)) ==  round(digits=7, coef(m1)) #Not this time lad.
 #(Intercept)           x 
 #      FALSE       FALSE 

Şimdi nerede, tasarımınız mükemmel bir şekilde dengelenmediği için aynı katsayı tahminlerine sahip değilsiniz.

Aslında eksik değer deseninizle aptalca bir şekilde oynarsanız (örneğin y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NA:), böylece tasarımınız hala mükemmel bir şekilde dengelenirse, aynı katsayıları tekrar alırsınız.

 require(nlme)
 set.seed(128)
 n <- 100
 k <- 5
 cat <- as.factor(rep(1:k, each = n))
 cat_i <- 1:k # intercept per kategorie
 x <- rep(1:n, k)
 sigma <- 0.2
 alpha <- 0.001
 y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
 plot(x, y)

 # simulate missing data in a perfectly balanced way
 y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NA

 m1 <- lm(y ~ x)  
 m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit) 

 round(digits=7,fixef(m3)) ==  round(digits=7, coef(m1)) #Look what happend now...
 #(Intercept)           x 
 #       TRUE        TRUE 

Orijinal denemenizin mükemmel tasarımıyla marjinal olarak yanlış yönlendirildiniz. NA'ları dengeli olmayan bir yere yerleştirdiğinizde, bireylerin birbirlerinden ne kadar “güç” alabileceği şeklini değiştirdiniz.

Kısacası, gördüğünüz farklar büzülme etkilerinden kaynaklanmaktadır ve daha özel olarak, mükemmel bir şekilde dengeli orijinal tasarımınızı mükemmel şekilde dengelenmemiş eksik değerlerle bozduğunuz için.

Ref 1: Douglas Bates lme4: R ile karma efektler modellemesi , sayfa 71-72

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.