สมมติว่าคุณอยู่ในห้องสมุดของแผนกสถิติของคุณและคุณเจอหนังสือที่มีรูปภาพต่อไปนี้ในหน้าแรก
คุณอาจจะคิดว่านี่เป็นหนังสือเกี่ยวกับเรื่องการถดถอยเชิงเส้น
ภาพที่จะทำให้คุณคิดเกี่ยวกับโมเดลเชิงเส้นผสมเป็นอย่างไร
สมมติว่าคุณอยู่ในห้องสมุดของแผนกสถิติของคุณและคุณเจอหนังสือที่มีรูปภาพต่อไปนี้ในหน้าแรก
คุณอาจจะคิดว่านี่เป็นหนังสือเกี่ยวกับเรื่องการถดถอยเชิงเส้น
ภาพที่จะทำให้คุณคิดเกี่ยวกับโมเดลเชิงเส้นผสมเป็นอย่างไร
คำตอบ:
สำหรับการพูดคุยฉันได้ใช้รูปภาพต่อไปนี้ซึ่งยึดตามsleepstudy
ชุดข้อมูลจากแพ็คเกจlme4 แนวคิดก็คือเพื่อแสดงให้เห็นถึงความแตกต่างระหว่างการถดถอยแบบอิสระจากข้อมูลเฉพาะเรื่อง (สีเทา) กับการทำนายจากแบบจำลองผลกระทบแบบสุ่มโดยเฉพาะอย่างยิ่งที่ (1) ค่าที่ทำนายจากแบบจำลองผลกระทบแบบสุ่มคือตัวประมาณการหดตัว ความชันทั่วไปที่มีรูปแบบการสกัดกั้นแบบสุ่มเท่านั้น (สีส้ม) การแจกแจงของการสกัดกั้นเรื่องจะแสดงเป็นการประมาณความหนาแน่นของเคอร์เนลบนแกน y ( รหัส R )
(เส้นโค้งความหนาแน่นขยายออกไปนอกช่วงของค่าที่สังเกตได้เนื่องจากมีการสังเกตค่อนข้างน้อย)
กราฟิก 'ธรรมดา' มากขึ้นอาจเป็นกราฟิกถัดไปซึ่งมาจาก Doug Bates (มีอยู่ในไซต์ R-forge สำหรับ lme4เช่น4Longitudinal.R ) ซึ่งเราสามารถเพิ่มข้อมูลส่วนบุคคลในแต่ละแผง
ดังนั้นสิ่งที่ไม่ "หรูหรามาก" แต่แสดงการสกัดกั้นแบบสุ่มและความลาดชันด้วย R (ฉันเดาว่ามันจะเย็นกว่านี้ถ้าแสดงสมการจริงด้วย)
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()
กราฟนี้นำมาจากเอกสาร Matlab ของnlmefitทำให้ฉันรู้สึกเหมือนเป็นตัวอย่างของแนวคิดของการสกัดกั้นแบบสุ่มและความลาดชันอย่างเห็นได้ชัดเลยทีเดียว อาจเป็นสิ่งที่แสดงกลุ่มของ heteroskedasticity ในส่วนที่เหลือของพล็อต OLS จะเป็นมาตรฐานสวย แต่ฉันจะไม่ให้ "ทางออก"