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

混合效应模型:lmer函数默认列表删除为何未按预期生效?

关于lme4混合模型缺失数据处理的疑问解答

核心误解纠正

lme4包的默认缺失数据处理并非你理解的按受试者的列表删除(即只要受试者有任意一个时间点的因变量缺失就排除整个受试者),而是逐观测删除——仅删除因变量(或模型中纳入的自变量)存在缺失的单个观测行,保留该受试者其他非缺失的观测点参与分析。

结合你的数据验证

从你的结果可以直接验证这一点:

  • 模型输出显示Number of obs: 216, groups: Patient, 131:总共有131名受试者(140总患者 - 9名两个时间点均缺失的患者),216个观测点正好是T0有数据的119个观测 + T3有数据的97个观测(119+97=216)。
  • 这意味着模型保留了:
    • 同时拥有T0和T3数据的受试者(共85名:119+97-131=85,贡献85×2=170个观测)
    • 仅T0有数据的受试者(119-85=34名,贡献34个观测)
    • 仅T3有数据的受试者(97-85=12名,贡献12个观测)

为什么lme4默认这么做?

混合效应模型的核心优势之一就是支持非平衡数据——不需要每个受试者都完成所有时间点的测量。逐观测删除能最大化利用现有数据,避免因少量缺失就丢弃整个受试者的全部信息,这在临床或纵向研究中尤为实用。

若需按受试者列表删除(仅保留双时间点均有数据的受试者)

如果你确实想要排除所有仅单个时间点有数据的受试者,可以先筛选数据再拟合模型:

# 筛选出两个时间点的BE_S均非缺失的患者
Data_filtered <- BES_alle_long_change %>%
  group_by(Patient) %>%
  filter(all(!is.na(BE_S))) %>%
  ungroup()

# 拟合列表删除后的模型
model_listwise <- lmer(BE_S ~ Gruppe * Zeitpunkt + Alter + Zentrum + (1 | Patient), data = Data_filtered)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:57:33