首页 > 解决方案 > R中混合lmer模型的警告消息

问题描述

我正在尝试在 R 中运行线性混合模型。但是我得到的印象是出了点问题。

模型中的所有变量都是连续的,除了组是一个具有两个水平的因素。我的因变量已经过对数转换以解决正态性问题。此外,我在模型中的所有自变量都经过缩放以给出标准差 1 和均值 0。我没有对因变量执行此操作,因为缩放对数转换后产生的 NAN。

自变量处理示例代码:

data$age2 = scale(data$age)

关于变量的唯一另一件事是每个主题都有两个 time2 值。该变量是测试中两种不同类型问题的平均反应速度的量度。数据是宽格式的,每个参与者占据一行。我现在有长格式的数据,每个参与者都有两行。长格式的行除了两个不同点之外是相同的。有一列指定了 time2 的不同级别(简单/困难)。另一列指定 time2 的两个不同分数。

我的模型看起来像这样:

(T_log ~ 1 + age2 + IQ2 + group + GermanScore2 + time2 + group:GermanScore2:time2 
                  + (1 + GermanScore2|subjects), data = data)

除了固定效应外,该模型还检查了参与受试者的随机截距。固定效应中还有一个三向交互项。

但是,我在运行模型时收到各种警告/错误。我想知道并猜测这是否与我如何处理变量有关。要么是那个,要么是模型太复杂(计划是在运行最复杂的模型后向后工作)。

Warning messages:
1: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model failed to converge with max|grad| = 0.246526 (tol = 0.002, component 1)
2: In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
  Model is nearly unidentifiable: very large eigenvalue
 - Rescale variables? 

实际上,上面的模型比我想考虑的模型稍微简化了随机效应结构。我真的很想看看:

(T_log ~ 1 + age2 + IQ2 + group + GermanScore2 + time2 + group:GermanScore2:time2 
                  + (1 + GermanScore2|subjects), data = data)

该模型在德语考试分数上为每个科目添加随机斜率。

但是,该模型会产生错误:

Error: number of observations (=152) <= number of random effects (=152) for term (1 + bilec_total_input | part_no); the random-effects parameters and the residual variance (or scale parameter) are probably unidentifiable

有人知道出了什么问题吗?如果您足够大方地回答,请记住我是一个 stats / R dummy。谢谢。

标签: rlme4mixed-models

解决方案


推荐阅读