我做了什么:我在 R 中使用 nlme 库进行了线性混合效应模型分析。我有一个分类固定变量,模糊,有 2 个级别:B 代表模糊,N 代表非模糊。根据建议,我将它们更改为 1(代表 B)和 0(代表 N)。
问题:我重新运行模型。而且我得到了不同的 p 值/结果(我并不是说 + p 值变成了 -,我的意思是数字变了)。
我做了什么来解决它:然后,我颠倒了顺序(我给 B 给了 0,给 N 给了 1),看看它是否改变了任何东西。我得到的 p 值和系数与我将其编码为 B 和 N 时相同(太棒了!)。但是你知道为什么会这样吗?
编辑:我在这里添加一个可重现的示例:只有 80 行的数据:https ://home.mycloud.com/action/share/dedef0a3-794c-4ccc-b245-f93559de1f33
katilimci = factor(dENEME$Participants)
resimler = factor(dENEME$ImageID)
bugu0 = factor(dENEME$Blurriness)
sira0 = factor(dENEME$TheOrderofTheImages)
cekicilik0 = factor(dENEME$TargetAttractiveness)
bugu1 = factor(dENEME$Blurriness2)
sira1= factor(dENEME$TheOrderofTheImages2)
cekicilik1 = factor(dENEME$TargetAttractiveness2)
library(nlme)
myModel1 = lme(Ratings~bugu0+sira0+cekicilik0+bugu0:cekicilik0+bugu0:sira0+sira0:cekicilik0+bugu0:cekicilik0:sira0,data = dENEME, random=list(katilimci=~1, resimler=~1),na.action = na.exclude)
myModel2 = lme(Ratings~bugu1+sira1+cekicilik1+bugu1:cekicilik1+bugu1:sira1+sira1:cekicilik1+bugu1:cekicilik1:sira1,data = dENEME, random=list(katilimci=~1, resimler=~1),na.action = na.exclude)
summary(myModel1)
summary(myModel2)
结果 p 值不同,我找不到原因...
编辑2:另一个可重现的例子:
library(nlme)
#fixed factors:
variable1<-as.factor(rep(c("A","B"),each=20))
variable2<-as.factor(sample(rep(c("A","B"),each=20)))
variable3<-as.factor(sample(rep(c("A","B"),each=20)))
#y variable:
ratings<-c(rnorm(20,0,2),rnorm(20,1,6))
#random factor:
ID<-as.factor(paste("ID",rep(1:20,times=2),sep=""))
#symmetrical matrixes:
contrasts(variable1)<-c(0,1)
#in the Line 11, for variable1, level A becomes 0, and level B becomes 1.
contrasts(variable2)<-c(0,1)
contrasts(variable3)<-c(0,1)
#model1:
m1<-lme(ratings~variable1*variable2*variable3,random=~1|ID)
contrasts(variable1)<-c(1,0)
#in the line 19, for variable1, level A becomes 1 and level B becomes 0. So, all the fixed variables mirrors each other in the data that we created.
contrasts(variable2)<-c(1,0)
contrasts(variable3)<-c(1,0)
#model2:
m2<-lme(ratings~variable1*variable2*variable3,random=~1|ID)
summary(m1)
summary(m2)
#we bind the parameters of the 2 models to see them together for comparison:
rbind(
summary(m1)[[20]][,1],
summary(m2)[[20]][,1]
)