Tôi đã làm việc với một số dữ liệu có một số vấn đề với các phép đo lặp đi lặp lại. Khi làm như vậy tôi nhận thấy hành vi rất khác nhau giữa lme()
và lmer()
sử dụng dữ liệu thử nghiệm của mình và muốn biết tại sao.
Bộ dữ liệu giả mà tôi tạo có số đo chiều cao và cân nặng cho 10 đối tượng, được thực hiện hai lần mỗi đối tượng. Tôi thiết lập dữ liệu để giữa các đối tượng sẽ có mối quan hệ tích cực giữa chiều cao và cân nặng, nhưng mối quan hệ tiêu cực giữa các biện pháp lặp đi lặp lại trong mỗi cá nhân.
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
Dưới đây là một biểu đồ của dữ liệu, với các đường nối hai phép đo từ mỗi cá nhân.
Vì vậy, tôi đã chạy hai mô hình, một với lme()
từ nlme
gói và một với lmer()
từ lme4
. Trong cả hai trường hợp, tôi chạy hồi quy cân nặng so với chiều cao với hiệu ứng ngẫu nhiên của ID để kiểm soát các phép đo lặp lại của mỗi cá nhân.
library(nlme)
Mlme=lme(Height~Weight,random=~1|ID,data=DF)
library(lme4)
Mlmer=lmer(Height~Weight+(1|ID),data=DF)
Hai mô hình này thường (mặc dù không phải luôn luôn phụ thuộc vào hạt giống) tạo ra kết quả hoàn toàn khác nhau. Tôi đã thấy nơi họ tạo ra các ước tính phương sai hơi khác nhau, tính toán các mức độ tự do khác nhau, v.v., nhưng ở đây các hệ số nằm ở hai hướng ngược nhau.
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
Để minh họa trực quan, mô hình với lme()
Và mô hình với lmer()
Tại sao các mô hình này phân kỳ rất nhiều?