ฉันทำงานกับข้อมูลบางอย่างที่มีปัญหากับการวัดซ้ำ ๆ ในการทำเช่นนั้นฉันสังเกตเห็นพฤติกรรมที่แตกต่างกันมากระหว่างlme()
และlmer()
ใช้ข้อมูลทดสอบของฉันและต้องการทราบสาเหตุ
ชุดข้อมูลปลอมที่ฉันสร้างขึ้นนั้นมีการวัดส่วนสูงและน้ำหนักสำหรับ 10 วิชาถ่ายสองครั้ง ฉันตั้งค่าข้อมูลเพื่อให้ระหว่างวิชาจะมีความสัมพันธ์เชิงบวกระหว่างความสูงและน้ำหนัก แต่ความสัมพันธ์เชิงลบระหว่างการวัดซ้ำภายในแต่ละบุคคล
set.seed(21)
Height=1:10; Height=Height+runif(10,min=0,max=3) #First height measurement
Weight=1:10; Weight=Weight+runif(10,min=0,max=3) #First weight measurement
Height2=Height+runif(10,min=0,max=1) #second height measurement
Weight2=Weight-runif(10,min=0,max=1) #second weight measurement
Height=c(Height,Height2) #combine height and wight measurements
Weight=c(Weight,Weight2)
DF=data.frame(Height,Weight) #generate data frame
DF$ID=as.factor(rep(1:10,2)) #add subject ID
DF$Number=as.factor(c(rep(1,10),rep(2,10))) #differentiate between first and second measurement
นี่คือพล็อตของข้อมูลที่มีเส้นเชื่อมต่อการวัดทั้งสองจากแต่ละบุคคล
ดังนั้นผมจึงวิ่งสองรุ่นหนึ่งที่มีlme()
จากnlme
แพคเกจและเป็นหนึ่งเดียวกับจากlmer()
lme4
ในทั้งสองกรณีฉันทำการถดถอยของน้ำหนักเทียบกับส่วนสูงโดยใช้เอฟเฟกต์แบบสุ่มของ ID เพื่อควบคุมการวัดซ้ำของแต่ละคน
library(nlme)
Mlme=lme(Height~Weight,random=~1|ID,data=DF)
library(lme4)
Mlmer=lmer(Height~Weight+(1|ID),data=DF)
ทั้งสองรุ่นมักจะ (แต่ไม่ได้ขึ้นอยู่กับเมล็ดเสมอ) สร้างผลลัพธ์ที่แตกต่างอย่างสิ้นเชิง ฉันได้เห็นว่าพวกเขาสร้างการประมาณค่าความแปรปรวนที่แตกต่างกันเล็กน้อยคำนวณองศาอิสระที่แตกต่างกัน ฯลฯ แต่ที่นี่สัมประสิทธิ์อยู่ในทิศทางตรงกันข้าม
coef(Mlme)
# (Intercept) Weight
#1 1.57102183 0.7477639
#2 -0.08765784 0.7477639
#3 3.33128509 0.7477639
#4 1.09639883 0.7477639
#5 4.08969282 0.7477639
#6 4.48649982 0.7477639
#7 1.37824171 0.7477639
#8 2.54690995 0.7477639
#9 4.43051687 0.7477639
#10 4.04812243 0.7477639
coef(Mlmer)
# (Intercept) Weight
#1 4.689264 -0.516824
#2 5.427231 -0.516824
#3 6.943274 -0.516824
#4 7.832617 -0.516824
#5 10.656164 -0.516824
#6 12.256954 -0.516824
#7 11.963619 -0.516824
#8 13.304242 -0.516824
#9 17.637284 -0.516824
#10 18.883624 -0.516824
เพื่อแสดงให้เห็นด้วยสายตาให้ทำโมเดลด้วย lme()
และรูปแบบด้วย lmer()
ทำไมแบบจำลองเหล่านี้ถึงได้แตกต่างกันมาก?