Câu trả lời:
Để nói chuyện, tôi đã sử dụng hình ảnh sau đây dựa trên sleepstudy
bộ dữ liệu từ gói lme4 . Ý tưởng là để minh họa sự khác biệt giữa hồi quy độc lập phù hợp với dữ liệu cụ thể theo chủ đề (màu xám) so với dự đoán từ các mô hình hiệu ứng ngẫu nhiên, đặc biệt là (1) giá trị dự đoán từ mô hình hiệu ứng ngẫu nhiên là ước lượng co rút và (2) chia sẻ quỹ đạo cá nhân độ dốc chung với mô hình chỉ đánh chặn ngẫu nhiên (màu cam). Các bản phân phối của các chủ đề chặn được hiển thị dưới dạng ước tính mật độ hạt nhân trên trục y ( mã R ).
(Các đường cong mật độ mở rộng ra ngoài phạm vi của các giá trị được quan sát vì có tương đối ít quan sát.)
Một hình ảnh 'thông thường' hơn có thể là hình ảnh tiếp theo, từ Doug Bates (có sẵn trên trang R-forge cho lme4 , ví dụ 4Longitudinal.R ), nơi chúng tôi có thể thêm dữ liệu riêng lẻ vào mỗi bảng.
Vì vậy, một cái gì đó không "cực kỳ thanh lịch" nhưng lại hiển thị các giao thoa ngẫu nhiên và dốc quá với R. (Tôi đoán nó sẽ còn tuyệt hơn nữa nếu được hiển thị các phương trình thực tế)
N =100; set.seed(123);
x1 = runif(N)*3; readings1 <- 2*x1 + 1.0 + rnorm(N)*.99;
x2 = runif(N)*3; readings2 <- 3*x2 + 1.5 + rnorm(N)*.99;
x3 = runif(N)*3; readings3 <- 4*x3 + 2.0 + rnorm(N)*.99;
x4 = runif(N)*3; readings4 <- 5*x4 + 2.5 + rnorm(N)*.99;
x5 = runif(N)*3; readings5 <- 6*x5 + 3.0 + rnorm(N)*.99;
X = c(x1,x2,x3,x4,x5);
Y = c(readings1,readings2,readings3,readings4,readings5)
Grouping = c(rep(1,N),rep(2,N),rep(3,N),rep(4,N),rep(5,N))
library(lme4);
LMERFIT <- lmer(Y ~ 1+ X+ (X|Grouping))
RIaS <-unlist( ranef(LMERFIT)) #Random Intercepts and Slopes
FixedEff <- fixef(LMERFIT) # Fixed Intercept and Slope
png('SampleLMERFIT_withRandomSlopes_and_Intercepts.png', width=800,height=450,units="px" )
par(mfrow=c(1,2))
plot(X,Y,xlab="x",ylab="readings")
plot(x1,readings1, xlim=c(0,3), ylim=c(min(Y)-1,max(Y)+1), pch=16,xlab="x",ylab="readings" )
points(x2,readings2, col='red', pch=16)
points(x3,readings3, col='green', pch=16)
points(x4,readings4, col='blue', pch=16)
points(x5,readings5, col='orange', pch=16)
abline(v=(seq(-1,4 ,1)), col="lightgray", lty="dotted");
abline(h=(seq( -1,25 ,1)), col="lightgray", lty="dotted")
lines(x1,FixedEff[1]+ (RIaS[6] + FixedEff[2])* x1+ RIaS[1], col='black')
lines(x2,FixedEff[1]+ (RIaS[7] + FixedEff[2])* x2+ RIaS[2], col='red')
lines(x3,FixedEff[1]+ (RIaS[8] + FixedEff[2])* x3+ RIaS[3], col='green')
lines(x4,FixedEff[1]+ (RIaS[9] + FixedEff[2])* x4+ RIaS[4], col='blue')
lines(x5,FixedEff[1]+ (RIaS[10]+ FixedEff[2])* x5+ RIaS[5], col='orange')
legend(0, 24, c("Group1","Group2","Group3","Group4","Group5" ), lty=c(1,1), col=c('black','red', 'green','blue','orange'))
dev.off()
Biểu đồ này được lấy từ tài liệu Matlab của nlmefit gây ấn tượng với tôi như một người thực sự minh họa cho khái niệm về các đòn đánh ngẫu nhiên và độ dốc khá rõ ràng. Có lẽ một cái gì đó cho thấy các nhóm không đồng nhất trong phần dư của âm mưu OLS cũng khá chuẩn nhưng tôi sẽ không đưa ra "giải pháp".