【问题标题】:Imputing missing observation估算缺失的观察值
【发布时间】:2019-07-14 13:53:46
【问题描述】:

我正在分析一个包含超过 450k 行的数据集,由于无响应和其他随机因素,我正在查看的其中一列 (pa1min_) 中大约 100k 行具有 NA 值。本专栏以分钟为单位处理锻炼时间。

我认为用平均值或中位数填充NA 值是没有意义的,因为它几乎占数据的四分之一并且可能产生偏差。我想用线性回归来估算缺失的观察结果。但是,我收到一条错误消息:

Error: vector memory exhausted (limit reached?)
In addition: There were 50 or more warnings (use warnings() to see the first 50)

这是我的代码:

# imputing using multiple imputation deterministic regression
imp_model <- mice(brfss2013, method="norm.predict", m=1)
# store data
data_imp <- complete(imp_model)
# multiple imputation
imp_model <- mice(brfss2013, m=5)
# building predictive mode
fit <- with(data=imp_model, lm(y ~ x + z))
# combining results
combined <- pool(fit)

这是数据的链接(压缩) Data

注意:我真的只想为一列填充 impute...数据框中的其他列是字符、整数和因子的混合,有些超过 2 个级别。

【问题讨论】:

  • 听起来您只需要一台具有更多 RAM 的计算机。很难说虽然没有某种reproducible example
  • @MrFlick 添加了压缩数据的链接

标签: r data-science linear-regression imputation r-mice


【解决方案1】:

MrFlick 提到的类似,您的 RAM 有点短。

尝试在 1% 的数据上运行该算法,如果成功,您应该尝试检查 bigmemory 包以进行磁盘计算。

我还鼓励您检查您在数据上拟合的模型在没有贝叶斯插补的情况下是否真的很好,因为尝试拥有完美数据这一事实不会比仅仅插补均值更有益/median/first/last 数据的值。

希望这会有所帮助。

【讨论】:

  • 谢谢,尝试在我的数据的 1% 下运行算法并收到此错误消息 ->solve.default(xtx + diag(pen)) 中的错误:系统在计算上是奇异的:倒数条件数= 1.56244e-26 另外:有50个或更多警告(使用warnings()查看前50个)
  • @Emm 我建议你查看这篇文章 :) stackoverflow.com/questions/50928796/…
  • 我试图用上面的帖子向你解释的是,由于矩阵的行列式根据机器精度为零,矩阵不可逆(检查答案),因此无法解决问题
猜你喜欢
  • 2016-09-03
  • 2014-04-12
  • 2021-05-08
  • 1970-01-01
  • 2013-07-21
  • 2020-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多