Я занимаюсь моделированием, и один из наборов данных, которые я вменяю, очень мал (n = 10). При использовании MICE мой набор данных и код выглядят следующим образом
> dat
y X1 X2
11 -155.04185 NA 10.464688
12 69.02116 NA 8.245312
13 -89.18124 21.69072 4.717425
14 115.52205 NA 15.666802
15 94.09654 NA 6.977855
16 65.44607 NA 16.608755
17 -246.09192 NA 3.208590
18 118.99815 25.68459 4.727989
19 214.84858 NA 6.065670
20 293.19425 NA 6.647658
> pred1 <-matrix(data= c(0,0,0,
1,0,1,
0,0,0), nrow = 3, ncol = 3, byrow = TRUE)
> mice(dat, m=25, method= "norm", predictorMatrix = pred1, maxit=5)
iter imp variable
1 1 X1_missing
Error in cor(xobs[, keep, drop = FALSE], use = "all.obs") : 'x' is empty
Для другого набора данных, который имеет 3 наблюдаемых значения для X1, команда мыши работала нормально, без ошибок.
Я просмотрел ошибку и наткнулся на эти две ссылки, которые не помогли: https://stat.ethz.ch/pipermail/r-help/2015-December/434914.html
Неясная ошибка с пакетом мышей
Я просмотрел следующий код в github https://github.com/stefvanbuuren/mice/blob/master/R/internal.R
Я определил, что «x» — это матрица плана, которая используется для вменения переменной с отсутствующими наблюдениями. (нашел определения по этой ссылке: https://stat.ethz.ch/pipermail/r-help/2015-December/434914.html)
В моем случае матрица проекта должна состоять из «y» и «X2», которые я указал в pred1
, чтобы помочь вычислить «X1». Учитывая, что «y» и «X2» полностью наблюдаются в данных, я не уверен, почему он считает, что матрица дизайна пуста.
У кого-нибудь есть идеи относительно того, что происходит не так?
ОБНОВЛЕНИЕ: после обновления пакета mice
до версии 3.4.0 выполнялись импутации для папки данных, но регистрировался ряд событий и выводилось следующее сообщение об ошибке.
it im dep meth out
1 1 1 X1_missing norm df set to 1. # observed cases: 2 # predictors: 3
2 1 1 X1_missing norm All predictors are constant or have too high correlation.
3 1 2 X1_missing norm df set to 1. # observed cases: 2 # predictors: 3
4 1 2 X1_missing norm All predictors are constant or have too high correlation.
5 1 3 X1_missing norm df set to 1. # observed cases: 2 # predictors: 3
6 1 3 X1_missing norm All predictors are constant or have too high correlation.
Таким образом, проблема связана с небольшим количеством наблюдений и количеством предикторов, которые я использую, что приводит к отрицательным степеням свободы. По следующей ссылке (https://stefvanbuuren.name/fimd/sec-toomany.html#finding-problems-loggedevents) указывает, что степени свободы устанавливаются равными 1, что означает, что предикторы отбрасываются.
Поэтому мне может потребоваться настроить мои смоделированные данные, чтобы обойти это.