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

lmer加入交互项后出现未定义变量估计值的原因咨询

多水平回归中因子交互项的额外变量来源解析

问题背景

你在使用mice完成多水平插补并通过mitml合并后,运行多水平回归时遇到输出中出现原数据不存在的变量的问题。具体代码及输出如下:

运行代码

Int1 <- with(data, lmer(math ~ meanmath*cc + (1|classID)))

模型输出

(Intercept) 0.34
meanmath    0.22
cc1        -0.43
cc2        -0.69
cc3        -0.66
meanmath*cc1 -0.16
meanmath*cc2 0.12 
meanmath*cc3 0.23

已知data$cc是包含4个水平("1","2","3","4")的因子类型变量,其余变量均为连续型,且单个插补数据运行结果一致、所有插补数据变量完全相同。

原因解析

这些额外变量是R处理因子类型自变量时自动生成的虚拟编码(dummy variables),属于模型拟合的默认行为,具体逻辑如下:

  • 当因子变量cc被纳入回归模型时,R会自动将其转换为虚拟变量。由于cc有4个水平,R默认选取最后一个水平(此处为"4")作为参考水平,然后为剩下的3个水平分别生成一个虚拟变量(即cc1、cc2、cc3)。这些虚拟变量用于标记样本是否属于对应水平(属于则取值1,否则为0)。
  • 公式中的meanmath*cc是meanmath + cc + meanmath:cc的简写,代表同时纳入主效应与交互效应。因此模型会自动生成meanmath与每个cc虚拟变量的交互项(meanmath*cc1、meanmath*cc2、meanmath*cc3),用于衡量meanmath对math的影响在cc不同水平下的差异。

这些变量并非数据中实际存在的列,而是R为拟合因子变量效应在模型内部自动构造的编码变量,完全符合统计建模的规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:46:03