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

如何查看R中lmer与emmeans处理缺失数据后的替代值及计算数据集?

查看lmer模型及emmeans使用的数据

1. 查看模型拟合时实际用到的观测数据

lmer在拟合混合模型时,会自动排除因变量(dv)缺失或固定效应自变量有缺失的观测(随机效应变量如subject缺失的观测也会被排除)。你可以通过model.frame()函数直接提取模型拟合时使用的数据集:

# 假设你的模型名为model
used_data <- model.frame(model)
# 查看前几行数据
head(used_data)
# 对比原始数据,找出被排除的观测
original_data <- dat # 替换为你的原始数据框名
excluded_data <- original_data[!rownames(original_data) %in% rownames(used_data), ]
excluded_data

这个used_data就是模型拟合时实际纳入的所有非缺失观测,你可以直接查看哪些被试的前测/后测数据被保留或排除。

2. 查看emmeans计算边际均值的参考网格与底层逻辑

emmeans的边际均值不是基于某个“处理后数据集”的直接均值,而是基于模型参数,在固定效应的所有水平组合上生成的**参考网格(reference grid)**进行预测得到的。你可以通过以下方式查看参考网格及计算结果:

查看参考网格

# 获取模型的参考网格
rg <- ref_grid(model)
# 打印参考网格信息
rg
# 转换为数据框格式查看
rg_df <- as.data.frame(rg)
rg_df

参考网格包含了condition×time的所有水平组合(比如两组被试×前后测,共4种组合),emmeans就是在这些组合上计算边际均值。

查看emmeans的具体计算结果

你可以直接将emmeans的结果转换为数据框,查看计算出的边际均值及相关统计量:

# 计算condition×time的边际均值
emm <- emmeans(model, ~ condition * time)
# 转换为数据框
emm_df <- as.data.frame(emm)
emm_df

关键说明

lmer默认使用**全信息极大似然估计(FIML)**处理缺失数据,不是简单的列表删除——模型会利用所有可用的非缺失观测进行拟合,而非删除整个被试的数据(除非该被试的所有观测都缺失)。因此emmeans的边际均值是基于模型拟合出的参数预测得到的,而非直接对某个子集的原始数据求均值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:17:23