【问题标题】:Using method 'pmm' while simultaneously exluding variables from imputation使用方法“pmm”,同时从插补中排除变量
【发布时间】:2018-09-17 13:55:49
【问题描述】:

我目前正在使用“pmm”方法使用 R 包鼠标输入数据。 最小工作示例(给定数据集已加载并正确指定变量):

library(mice)
Example_imp <- mice(Example_data, m = 5, maxit = 50, method = "pmm", seed = 500)

我还想从插补中排除一些变量(社会人口学变量)。它们应该用作预测变量,但它们没有缺失值,这就是为什么它们不需要插补。我找到了一种指定方法的方法,以便将指定的变量排除在插补之外:

init <- mice(Example_data, maxit = 0) 
meth <- init$method
meth[c("Age", "Nationality", "Gender", "Educ")]=""
Example_imp2 <- mice(Example_data, m = 5, maxit = 50, method = meth, seed = 500)

但是当我估算数据时,我只能指定一次“方法”,即指定method = "pmm"method = meth。我不能“双重指定”它。那么我该如何使用 pmm 方法,为什么仍然从插补中排除一些变量并仅将它们用作预测变量?

【问题讨论】:

  • 如果这些变量中没有缺失值,则不会对其进行插补。无需指定,这是mice 的默认设置。 p19 Van Buuren & Groothuis-Oudshoorn (2011) “由于年龄不包含缺失数据,mice() 将行中的所有值静默设置为 0。”。检查init$method对象,这些变量默认应该有meth ""
  • 谢谢,尼克!这听起来很合理

标签: r prediction r-mice


【解决方案1】:

你需要在mice()中设置一个predictorMatrix值

例如,nhanes 数据集:

   age  bmi hyp chl
1   1   NA  NA  NA
2   2 22.7   1 187
3   1   NA   1 187
4   3   NA  NA  NA

所有变量都用于插补的默认预测矩阵如下所示:

     age hyp chl
age   0   1   1
hyp   1   0   1
chl   1   1   0

例如,如果不需要 chl 的插补,那么我们需要将 chl 行全部设为 0,然后将以下设置为您的 predictorMatrix

    age hyp chl
age   0   1   1
hyp   1   0   1
chl   0   0   0

【讨论】:

  • 谢谢你,ist123!但我认为预测矩阵用于删除或添加变量作为预测变量。在以下网站 (datascienceplus.com/…) 上,我找到了一个示例:下面的代码将删除变量作为预测变量,但仍将被估算。仅出于说明目的,我选择在插补期间不包含在预测变量中的 BMI 变量。 predM[, c("BMI")]=0 我需要的是完全相反的:使用一个变量作为预测变量,但没有对这个变量进行插补。或者我完全错了?
猜你喜欢
  • 2020-10-24
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多