【发布时间】:2019-12-14 20:51:27
【问题描述】:
我即将对缺失值进行插补,我使用mice-package。我需要根据特定的列内容进行插补。所以基本上,我有 24 列用于测量 4 个潜在变量(使用 plspm-package)。我希望根据特定的专栏内容估算 N/A。因此,对于第 1-6 列,我希望仅根据这 6 列中的内容来估算那些特定列中的 NA。(对于第 7-12、13-18 和 19-24 列,依此类推)。
我希望这对你们有意义。
我的数据结构是:
p1 p2 p3 p4 p5 p6 l1 l2 l3 l4 l5 l6
4 3 5 4 5 N/A 2 1 4 5 1 N/A
4 4 1 3 1 2 1 1 1 1 1 1
5 4 5 4 4 4 4 4 5 5 4 4
5 4 5 5 4 5 4 4 N/A 5 4 4
5 5 5 5 5 5 3 2 5 5 2 2
4 3 4 3 3 3 3 2 3 4 3 2
5 4 5 5 3 4 4 1 5 5 5 4
5 5 5 5 5 5 5 3 4 5 3 4
4 4 4 4 3 N/A 4 4 5 4 3 3
5 4 4 4 3 2 1 3 2 5 1 1
4 4 4 4 5 5 3 4 5 5 3 3
4 3 2 N/A 1 2 N/A 1 2 N/A 1 N/A
3 3 4 4 3 2 1 3 3 3 1 3
5 3 4 4 4 2 3 4 4 4 3 3
4 4 4 5 2 2 2 2 2 2 3 3
5 4 4 4 4 4 4 4 5 5 4 3
4 3 3 3 5 2 2 2 4 4 1 1
5 4 5 4 5 3 1 1 5 5 2 3
4 3 1 3 4 4 2 1 4 3 2 3
4 3 1 4 3 1 2 1 4 4 3 2
3 3 5 4 5 1 2 2 4 5 3 2
4 4 5 3 5 5 2 2 3 4 2 3
4 4 2 3 2 3 2 2 3 4 2 2
5 5 5 5 5 5 4 3 3 3 3 3
5 5 5 5 5 4 4 N/A 5 5 N/A N/A
所以我猜它本质上是将数据分成 4 个块,然后进行插补。我在 help(mice) 中阅读了有关 blocks() 函数的信息,但我不确定我是否可以将它实际用于此特定任务。
到目前为止我一直在使用的代码是:
temp_pmm <- mice(data_predict,
m = 3,
maxit = 10,
method = "pmm",
seed = 2374)
但我理解包的方式是基于整行内容进行估算(因此我的潜在变量构造重叠,我试图减轻这种情况)。
希望你能帮助我,我很感激任何帮助。 提前致谢!
托比亚斯
【问题讨论】:
-
抱歉,忘记跟进了:我在stackoverflow.com/questions/30637522/… 查了一个类似的问题——但这种方法的问题在于它本质上是基于行的(而不是基于列的)。
-
你为什么不简单地为每个列块运行单独的插补。例如,
mice(data_predict[,c(1:6)],...和mice(data_predict[,c(7:12)],...?
标签: r imputation