0

如何使用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)

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

4

1 回答 1

0

MICE 将尝试估算数据中的所有 NA,即它假设所有缺失的观测值都应该被估算。

因此,您可以做的是用其他值替换您不想估算的 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)
于 2017-04-14T14:21:42.357 回答