BLUP'lardan aldığınız değerler, sabit etkilerin MAVİ tahminleriyle aynı şekilde tahmin edilmez; geleneksel olarak BLUP'lar tahmin olarak adlandırılır . Karışık efektler modelini taktığınızda, başlangıçta tahmin edilenler rastgele etkilerin ortalaması ve varyansıdır (ve muhtemelen kovaryans). Belirli bir çalışma birimi (örneğin bir öğrenci) için rastgele etki daha sonra tahmini ortalama ve varyans ve verilerden hesaplanır. Basit bir doğrusal modelde, ortalama tahmin edilir (artık varyans gibi), ancak gözlemlenen puanlar hem bu hem de rastgele bir değişken olan hatadan oluştuğu düşünülür. Karışık efektler modelinde, belirli bir birimin etkisi benzer şekilde rastgele bir değişkendir (bir anlamda zaten gerçekleştirilmiş olmasına rağmen).
İsterseniz bu tür birimleri sabit efektler olarak da kullanabilirsiniz. Bu durumda, o birimin parametreleri her zamanki gibi tahmin edilir. Ancak böyle bir durumda, birimlerin çizildiği popülasyonun ortalaması (örneğin) tahmin edilmez.
Dahası, rastgele etkilerin ardındaki varsayım, bazı popülasyonlardan rastgele örneklendiği ve önem verdiğiniz popülasyon olmasıdır. Sabit etkilerin altında yatan varsayım, bu birimleri bilerek seçmiş olmanızdır, çünkü bunlar önem verdiğiniz tek birimlerdir.
Arkanı dönüp karışık bir etki modeli takarsanız ve aynı etkileri tahmin ederseniz, sabit etki tahminlerine göre nüfus ortalamasına doğru 'küçülme' eğilimindedirler. Bunu, tahmini ortalama ve varyansın normal bir önceliği belirlediği ve BLUP'un verileri öncekiyle en uygun şekilde birleştirmekten elde edilen posterior ortalaması gibi olduğu bir Bayes analizine benzer olarak düşünebilirsiniz.
Büzülme miktarı çeşitli faktörlere bağlı olarak değişir. Rasgele etki tahminlerinin sabit etki tahminlerinden ne kadar uzakta olacağının önemli bir belirleyicisi, rasgele etkilerin varyansının hata varyansına oranıdır. İşte R
sadece 'araçlar (kesişmeler) uygun 5' seviye 2 'birimleri ile en basit vaka için hızlı bir demo. (Bunu sınıf içindeki öğrenciler için test puanları olarak düşünebilirsiniz.)
library(lme4) # we'll need to use this package
set.seed(1673) # this makes the example exactly reproducible
nj = 5; ni = 5; g = as.factor(rep(c(1:nj), each=ni))
##### model 1
pop.mean = 16; sigma.g = 1; sigma.e = 5
r.eff1 = rnorm(nj, mean=0, sd=sigma.g)
error = rnorm(nj*ni, mean=0, sd=sigma.e)
y = pop.mean + rep(r.eff1, each=ni) + error
re.mod1 = lmer(y~(1|g))
fe.mod1 = lm(y~0+g)
df1 = data.frame(fe1=coef(fe.mod1), re1=coef(re.mod1)$g)
##### model 2
pop.mean = 16; sigma.g = 5; sigma.e = 5
r.eff2 = rnorm(nj, mean=0, sd=sigma.g)
error = rnorm(nj*ni, mean=0, sd=sigma.e)
y = pop.mean + rep(r.eff2, each=ni) + error
re.mod2 = lmer(y~(1|g))
fe.mod2 = lm(y~0+g)
df2 = data.frame(fe2=coef(fe.mod2), re2=coef(re.mod2)$g)
##### model 3
pop.mean = 16; sigma.g = 5; sigma.e = 1
r.eff3 = rnorm(nj, mean=0, sd=sigma.g)
error = rnorm(nj*ni, mean=0, sd=sigma.e)
y = pop.mean + rep(r.eff3, each=ni) + error
re.mod3 = lmer(y~(1|g))
fe.mod3 = lm(y~0+g)
df3 = data.frame(fe3=coef(fe.mod3), re3=coef(re.mod3)$g)
Bu nedenle, rastgele etkilerin hata varyansına varyans oranları 1/5 model 1
, 5/5 for model 2
ve 5/1'dir model 3
. Sabit efektli modeller için seviye anlamına geldiğimi unutmayın. Şimdi bu üç senaryo için tahmini sabit etkilerin ve öngörülen rastgele etkilerin nasıl karşılaştırıldığını inceleyebiliriz.
df1
# fe1 re1
# g1 17.88528 15.9897
# g2 18.38737 15.9897
# g3 14.85108 15.9897
# g4 14.92801 15.9897
# g5 13.89675 15.9897
df2
# fe2 re2
# g1 10.979130 11.32997
# g2 13.002723 13.14321
# g3 26.118189 24.89537
# g4 12.109896 12.34319
# g5 9.561495 10.05969
df3
# fe3 re3
# g1 13.08629 13.19965
# g2 16.36932 16.31164
# g3 17.60149 17.47962
# g4 15.51098 15.49802
# g5 13.74309 13.82224
Sabit etki tahminlerine daha yakın olan rastgele etki tahminleriyle sonuçlanmanın başka bir yolu, daha fazla veriye sahip olduğunuzdur. Biz karşılaştırabilirsiniz model 1
bir sürümüne (için, hata varyansı rasgele etkiler varyans düşük oranına sahip, yukarıdan model 1b
aynı oran ile), ama çok daha verileri (haber o ni = 500
yerine ni = 5
).
##### model 1b
nj = 5; ni = 500; g = as.factor(rep(c(1:nj), each=ni))
pop.mean = 16; sigma.g = 1; sigma.e = 5
r.eff1b = rnorm(nj, mean=0, sd=sigma.g)
error = rnorm(nj*ni, mean=0, sd=sigma.e)
y = pop.mean + rep(r.eff1b, each=ni) + error
re.mod1b = lmer(y~(1|g))
fe.mod1b = lm(y~0+g)
df1b = data.frame(fe1b=coef(fe.mod1b), re1b=coef(re.mod1b)$g)
Etkileri şunlardır:
df1
# fe1 re1
# g1 17.88528 15.9897
# g2 18.38737 15.9897
# g3 14.85108 15.9897
# g4 14.92801 15.9897
# g5 13.89675 15.9897
df1b
# fe1b re1b
# g1 15.29064 15.29543
# g2 14.05557 14.08403
# g3 13.97053 14.00061
# g4 16.94697 16.92004
# g5 17.44085 17.40445
Biraz ilgili bir notta, Doug Bates (R paketinin lme4'ün yazarı) "BLUP" terimini sevmiyor ve onun yerine "koşullu mod" kullanıyor (taslak lme4 kitap pdf s. 22-23'e bakınız ). Özellikle bölüm 1.6'da "BLUP" un sadece doğrusal karma efekt modelleri için anlamlı bir şekilde kullanılabileceğine dikkat çekmektedir .