这是因为数据具有高度共线性,并且mice
函数内部检查共线性的阈值,如果未能通过,则显示上述错误。它使用该函数mice:::find.collinear()
内部。
要覆盖它,您可以使用以下命令,但它可能会产生一些奇怪的结果,不推荐:
mice(sample_data, remove.collinear=FALSE)
示例示例:
library(mice)
data("nhanes")
nhanes
ouput:
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
5 1 20.4 1 113
6 3 NA NA 184
7 1 22.5 1 118
8 1 30.1 1 187
9 2 22.0 1 238
10 2 NA NA NA
11 1 NA NA NA
12 2 NA NA NA
13 3 21.7 1 206
14 2 28.7 2 204
15 1 29.6 1 NA
16 1 NA NA NA
17 3 27.2 2 284
18 2 26.3 2 199
19 1 35.3 1 218
20 3 25.5 2 NA
21 1 NA NA NA
22 1 33.2 1 229
23 1 27.5 1 131
24 3 24.9 1 NA
25 2 27.4 1 186
imp <- mice(nhanes)
imp
# list the actual imputations for BMI
imp$imp$bmi
# first completed data matrix
complete(imp)
输出最终估算数据:
age bmi hyp chl
1 1 26.3 1 187
2 2 22.7 1 187
3 1 28.7 1 187
4 3 24.9 2 206
5 1 20.4 1 113
6 3 22.5 2 184
7 1 22.5 1 118
8 1 30.1 1 187
9 2 22.0 1 238
10 2 20.4 1 131
11 1 22.7 1 187
12 2 22.0 1 238
13 3 21.7 1 206
14 2 28.7 2 204
15 1 29.6 1 187
16 1 26.3 1 187
17 3 27.2 2 284
18 2 26.3 2 199
19 1 35.3 1 218
20 3 25.5 2 204
21 1 22.0 1 118
22 1 33.2 1 229
23 1 27.5 1 131
24 3 24.9 1 204
25 2 27.4 1 186
下面是函数和类似的文档github
与你相关的问题。
文档:https://www.rdocumentation.org/packages/mice/versions/3.6.0/topics/mice https://www.rdocumentation.org/packages/mice/versions/3.6.0/topics/mice
GitHub 问题:https://github.com/stefvanbuuren/mice/issues/194 https://github.com/stefvanbuuren/mice/issues/194