Các giá trị mà bạn nhận được từ BLUP không được ước tính giống như ước tính BLUE về các hiệu ứng cố định; theo quy ước BLUP được gọi là dự đoán . Khi bạn phù hợp với một mô hình hiệu ứng hỗn hợp, những gì được ước tính ban đầu là giá trị trung bình và phương sai (và có thể là hiệp phương sai) của các hiệu ứng ngẫu nhiên. Hiệu ứng ngẫu nhiên cho một đơn vị nghiên cứu nhất định (giả sử là một sinh viên) sau đó được tính toán từ giá trị trung bình và phương sai ước tính và dữ liệu. Trong một mô hình tuyến tính đơn giản, giá trị trung bình được ước tính (như là phương sai dư), nhưng điểm số quan sát được coi là bao gồm cả điều đó và lỗi, là một biến ngẫu nhiên. Trong một mô hình hiệu ứng hỗn hợp, hiệu ứng cho một đơn vị nhất định cũng là một biến ngẫu nhiên (mặc dù trong một số ý nghĩa, nó đã được nhận ra).
Bạn cũng có thể coi các đơn vị như là hiệu ứng cố định, nếu bạn muốn. Trong trường hợp đó, các tham số cho đơn vị đó được ước tính như bình thường. Tuy nhiên, trong trường hợp như vậy, giá trị trung bình (ví dụ) của dân số mà các đơn vị được rút ra không được ước tính.
Hơn nữa, giả định đằng sau các hiệu ứng ngẫu nhiên là chúng được lấy mẫu ngẫu nhiên từ một số người, và đó là dân số mà bạn quan tâm. Giả định cơ bản cho các hiệu ứng cố định là bạn đã chọn các đơn vị đó một cách có chủ đích vì đó là các đơn vị duy nhất bạn quan tâm.
Nếu bạn quay lại và phù hợp với một mô hình hiệu ứng hỗn hợp và dự đoán các hiệu ứng tương tự, chúng có xu hướng 'thu nhỏ' đối với dân số có nghĩa là liên quan đến ước tính hiệu ứng cố định của chúng. Bạn có thể nghĩ điều này tương tự như phân tích Bayes trong đó giá trị trung bình và phương sai ước tính xác định trước bình thường và BLUP giống như giá trị trung bình của hậu thế xuất phát từ việc kết hợp tối ưu dữ liệu với trước.
Số lượng co rút khác nhau dựa trên một số yếu tố. Một yếu tố quan trọng quyết định mức độ dự đoán hiệu ứng ngẫu nhiên sẽ đến từ các ước tính hiệu ứng cố định là bao xa là tỷ lệ phương sai của các hiệu ứng ngẫu nhiên so với phương sai lỗi. Dưới đây là R
bản demo nhanh cho trường hợp đơn giản nhất với các đơn vị 5 'cấp 2' chỉ có phương tiện (chặn) phù hợp. (Bạn có thể coi đây là điểm kiểm tra cho học sinh trong các lớp học.)
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)
Vì vậy, tỷ lệ phương sai của các hiệu ứng ngẫu nhiên đối với phương sai lỗi là 1/5 cho model 1
, 5/5 cho model 2
và 5/1 cho model 3
. Lưu ý rằng tôi đã sử dụng mức có nghĩa là mã hóa cho các mô hình hiệu ứng cố định. Bây giờ chúng ta có thể kiểm tra các hiệu ứng cố định ước tính và các hiệu ứng ngẫu nhiên dự đoán so sánh cho ba kịch bản này.
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
Một cách khác để kết thúc với các dự đoán hiệu ứng ngẫu nhiên gần với ước tính hiệu ứng cố định là khi bạn có nhiều dữ liệu hơn. Chúng ta có thể so sánh model 1
từ trên xuống, với tỷ lệ thấp của hiệu ứng ngẫu nhiên phương sai với phương sai lỗi, với một phiên bản ( model 1b
) có cùng tỷ lệ, nhưng nhiều dữ liệu hơn (chú ý ni = 500
thay vì 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)
Dưới đây là các hiệu ứng:
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
Trên một ghi chú có liên quan, Doug Bates (tác giả của gói R lme4) không thích thuật ngữ "BLUP" và sử dụng "chế độ có điều kiện" thay vào đó (xem trang 22-23 của cuốn sách lme4 pdf của anh ấy ). Cụ thể, ông chỉ ra trong phần 1.6 rằng "BLUP" chỉ có thể được sử dụng một cách có ý nghĩa cho các mô hình hiệu ứng hỗn hợp tuyến tính .