You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在mice中配置两水平多重插补的类变量时遇报错如何排查?

问题分析与解决方案

错误原因

你使用mice的2l.pmm(两水平预测均值匹配)方法处理重复测量数据的缺失值时,核心问题是未正确指定两水平模型的分组变量:

  • 2l.pmm要求基于分组变量构建随机效应模型,但你的配置没有明确告诉mice哪个变量是分组单元(即patient),导致生成的lmer公式出现(1|)这种缺少分组变量的语法错误。
  • 你对预测矩阵pred的设置逻辑完全搞反了:pred矩阵中值为-2的含义是「将对应的行变量作为两水平模型的分组变量,用于插补对应的列变量」,而你是在缺失变量(vit_d等)的行中将patient列设为-2,这完全不符合该参数的定义。

修正方案

方案1:用cluster参数指定分组(推荐,更直观)

直接在mice()函数中通过cluster参数明确指定分组变量patient,无需手动修改预测矩阵的-2设置,mice会自动处理两水平模型的结构:

imp <- mice(
  model_data, 
  method = '2l.pmm',
  cluster = "patient",  # 明确指定分组变量
  m=10,
  printFlag = FALSE,
  seed=0
)

方案2:正确设置预测矩阵

如果坚持手动配置预测矩阵,需要将分组变量patient所在的行中,需要用两水平模型插补的变量(vit_d、ask_score、eq_vas)设为-2,表示这些变量的插补将以patient为分组构建两水平模型:

pred <- quickpred(model_data)
# 修正:在patient行,将目标缺失变量设为-2
pred["patient", c('vit_d', 'ask_score', 'eq_vas')] <- -2

# 运行插补
imp <- mice(
  model_data, 
  pred=pred, 
  method = '2l.pmm',
  m=10,
  printFlag = FALSE,
  seed=0
)

内容的提问来源于stack exchange,提问作者Demetri Pananos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 21:24:51