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

使用mice插补缺失值后观测数多于原始数据集的问题排查

问题原因
  • 你在调用mice()函数时设置了参数m=5,该参数的作用是生成5个相互独立的缺失值插补数据集,这是多重插补方法的标准设置。
  • 后续调用complete()导出插补结果时使用了action="long"参数,该参数会将所有m个插补数据集按行堆叠成长格式输出,因此最终得到的数据集行数为原始行数27727 * 5 = 138635,属于符合预期的正常行为,并非代码运行出错。
修复方案

根据你的实际使用需求选择对应处理方式即可:

  • 如果你只需要单个插补后的数据集开展后续分析,将complete()的action参数修改为对应插补集的序号即可,比如要取第一个插补集,代码修改为:
    impdat <- complete(tempData, action=1)
    
    此时输出的impdat行数和原始数据集完全一致。
  • 如果你要遵循多重插补的标准统计流程,不建议手动提取单个插补集或长格式数据,应该使用with()函数对每个插补集分别建模,再用pool()函数合并多个插补集的统计结果,参考代码如下(以线性回归为例):
    # 对每个插补数据集拟合模型
    fit <- with(tempData, lm(k7 ~ k17 + d1a1x + bmgc23g))
    # 合并5个插补集的模型结果
    pooled_fit <- pool(fit)
    # 查看合并后的显著性检验结果
    summary(pooled_fit)
    
  • 如果你确实需要用到长格式的插补结果,可以通过数据集中自动生成的.imp列区分不同的插补集,该列取值1~5分别对应5个插补结果,每个分组的行数均为27727即可确认数据正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 03:15:03