Я занимаюсь моделированием, и один из наборов данных, который я вменяю, очень маленький (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, команда mouse работала нормально, без ошибок.
Я посмотрел вверхошибка и наткнулся на эти две ссылки, которые не помогли: 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подразумевающие, что предикторы отбрасываются.
Поэтому мне, возможно, потребуется настроить мои смоделированные данные, чтобы обойти это.