0

我做了什么:我在 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]
)

4

1 回答 1

0

我已经尝试制作一个可重复的示例,因为问题中没有一个。

require(nlme)

df <- data.frame(dv = c(rnorm(20, 0), rnorm(20, 1)),
                 Blurriness = factor(c(rep("B", 20), rep("N", 20))),
                 Random = factor(rep(rep(c("x", "y"), each = 5), 2)),
                 Blurriness_1_0 = rep(1:0, each = 20),
                 Blurriness_0_1 = rep(0:1, each = 20))

m <- list()
m[[1]] <- lme(dv ~ Blurriness, random = ~ Blurriness | Random, data = df)
m[[2]] <- lme(dv ~ Blurriness_1_0, random = ~ Blurriness_1_0 | Random, data = df)
m[[3]] <- lme(dv ~ Blurriness_0_1, random = ~ Blurriness_0_1 | Random, data = df)

models <- lapply(m, function(x) summary(x)$tTable)

这提供了 3 个模型,它们有望显示您描述的行为:

models
#> [[1]]
#>                 Value Std.Error DF    t-value     p-value
#> (Intercept) -0.138797 0.2864303 37 -0.4845752 0.630834098
#> BlurrinessN  1.008572 0.3451909 37  2.9217817 0.005901891
#> 
#> [[2]]
#>                     Value Std.Error DF   t-value     p-value
#> (Intercept)     0.8697753 0.2864293 37  3.036614 0.004366652
#> Blurriness_1_0 -1.0085723 0.3451909 37 -2.921781 0.005901898
#> 
#> [[3]]
#>                    Value Std.Error DF    t-value     p-value
#> (Intercept)    -0.138797 0.2864303 37 -0.4845752 0.630834098
#> Blurriness_0_1  1.008572 0.3451909 37  2.9217817 0.005901891

在此示例中,p 值仅针对截距不同,这是您所期望的(它只是告诉我们两个固定效应组的均值与 0 的标准差数不同)。

也许这不是您的意思-如果没有可重复的示例,很难从您的问题中分辨出来。

于 2020-01-01T14:14:13.747 回答