带有嵌套变量的 lme 函数的问题:(any(notIntX <- !apply(X, 2, const))

Problems with the lme function with nested variables: (any(notIntX <- !apply(X, 2, const))

我正在尝试拟合一个混合效应模型,其中我有嵌套的协变量 (VarX5 | VarX6) 并被视为固定效应。

但是,我正在尝试调整数据并出现以下消息:

library(nlme)
library(lme4)

dados$VarCat=as.factor(dados$VarCat)
dados$VarX5=as.factor(dados$VarX5)
dados$VarX6=as.factor(dados$VarX6)

model <- lme(log(Resp)~log(VarX1)+log(VarX2)+(VarX3)+(VarX4)+VarX5|VarX6 ,random = ~1|VarCat, 
                 dados, method="REML")

Error in if (any(notIntX <- !apply(X, 2, const))) { : 
  valor ausente onde TRUE/FALSE necessário

您没有正确指定分类变量。在 nlme:lme 中,他们进入 random 选项(错误是试图将因子直接传递到公式中)。在 lme4: lmer 中,它们被括在公式内的括号中。

model <- nlme::lme(
  log(Resp) ~ log(VarX1) + log(VarX2) + VarX3 + VarX4,
  random = ~ VarCat | VarX5:VarX6,
  data = dados)

model <- lme4::lmer(
  log(Resp) ~ log(VarX1) + log(VarX2) + VarX3 + VarX4 + (VarCat | VarX5:VarX6),
  data = dados)

我不知道你想要什么模型,所以可能 : 运算符不是最合适的。在 lmer 帮助页面中查看 formula 参数的详细信息。