如何使用MICE R仅填充一个或多个列的缺失值

3

我正在尝试使用R中的mice包,并想知道如何在插补时排除某些列。

  1. 如果我只想对一列运行均值插补,似乎应该使用mice.impute.mean(y, ry, x = NULL, ...)函数。但我不理解需要包含哪些参数作为第三个参数使其正常工作。
  2. 如果我的数据集包括分类数据(例如姓名、ID、出生日期等),这些数据不应影响其他列的计算,并且在缺失时不应填充,我该如何告诉mice在其计算中排除这些列?

我一直在使用mice数据集nhanes进行探索。

谢谢!

1个回答

7

我无法为您创建示例,因为我不知道您的数据,但是您正在寻找 mice() 函数的以下参数:

predictorMatrix
长度为(块)行和 ncol(data) 列的数值矩阵,其中包含0/1数据,指定用于每个目标列的预测变量集。每行对应于一个变量块,即要进行插补的变量集。值为1表示该列变量用作目标块(在行中)的预测变量。默认情况下,predictorMatrix 是一个具有 ncol(data) 行和列并带有所有 1 的方阵,除了对角线上的元素为 0。注意:对于二级插补模型(其名称中带有“2l”),也允许使用其他代码(例如,2或-2)。

通过这个参数,您可以定义要用于填充特定列的哪些列。

where
具有与数据相同维度的逻辑数据框或矩阵,指示在数据中应创建插补的位置。默认情况下,where = is.na(data) 指定应插补缺失数据。 where 参数可以用于过度插补观察到的数据,或跳过选择的缺失值的插补。

在这里,您可以定义要为哪些列创建插补。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接