如何指定使用MICE估算哪些行?

时间:2017-03-14 14:16:13

标签: r filter

如何通过链接运行多变量估算 对于此数据集使用mice()的方程式,使用行1:10,但仅预测第11行?

library(mice)
library(car)

df = mtcars[c(1:10), c(3:5)]
df[c(1:3), c(1)] = NA
df[c(4:7), c(2)] = NA
df[c(8:10), c(3)] = NA

df[nrow(df) + 1, names(df)] <- NA
                   disp  hp drat
Mazda RX4            NA 110 3.90
Mazda RX4 Wag        NA 110 3.90
Datsun 710           NA  93 3.85
Hornet 4 Drive    258.0  NA 3.08
Hornet Sportabout 360.0  NA 3.15
Valiant           225.0  NA 2.76
Duster 360        360.0  NA 3.21
Merc 240D         146.7  62   NA
Merc 230          140.8  95   NA
Merc 280          167.6 123   NA
11                   NA  NA   NA
imp = mice(df, m = 10, seed = 52545, print = FALSE)

这段代码运行完美,但是mouse()试图预测所有的NA。我不想花费资源来计算这些,我只需要预测第11行。

1 个答案:

答案 0 :(得分:0)

MICE将尝试将所有NAs归入数据中,即它假定所有缺失的观察结果都应该被估算。

因此,您可以做的是替换您不希望用其他值估算的NA数据点。

这样做的缺点是您可以期望这些值在缺失数据中显示为值。

library(mice)
library(car)

df = mtcars[c(1:10), c(3:5)]
df[c(1:3), c(1)] = "not na"
df[c(4:7), c(2)] = "not na"
df[c(8:10), c(3)] = "not na"

df[nrow(df) + 1, names(df)] <- NA
                   disp  hp drat
Mazda RX4            NA 110 3.90
Mazda RX4 Wag        NA 110 3.90
Datsun 710           NA  93 3.85
Hornet 4 Drive    258.0  NA 3.08
Hornet Sportabout 360.0  NA 3.15
Valiant           225.0  NA 2.76
Duster 360        360.0  NA 3.21
Merc 240D         146.7  62   NA
Merc 230          140.8  95   NA
Merc 280          167.6 123   NA
11                   NA  NA   NA

imp = mice(df, m = 10, seed = 52545, print = FALSE)