Как использовать мышей для вменения более чем двух уровней факторов, когда некоторые переменные имеют только два наблюдаемых значения - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь использовать мышей для расчета отсутствующих данных для матрицы генотипа. Я получаю, что dim (X) должен иметь положительную ошибку длины, как здесь: dim (X) должен иметь положительную длину при использовании функции мыши . Кроме того, я получаю следующее предупреждающее сообщение: In nnet:multinom(formula(xy), data=xy[ry, , drop = FALSE],weights = w[ry], : group '2' is empty

Итак, вот некоторый контекст: данные вводятся в виде фрейма данных. Все переменные, кроме последней, являются категориальными с 3 категориями: 0, 1 и 2 (а также отсутствующее значение NA). 2 - самое редкое значение, и в некоторых переменных оно вообще не будет отображаться. Последняя переменная является категориальной с 2 ​​категориями: 0 и 1, и в ней отсутствуют пропущенные данные. После сохранения данных в переменную data0 я назвал таких мышей data1 <- complete(mice(data0,method="polyreg"),action=1)

Я подумал, что эта ошибка может быть вызвана моей попыткой заставить мышей иметь 2 в качестве допустимого уровня для переменных, где 2 не удалось появляются. Я попытался создать минимальный воспроизводимый пример из этого:

library('mice')
A <- rbind(c(0,0,0),c(1,1,1),c(2,2,NA))
data0 <- data.frame(factor(A[,1],levels=c(0,1,2)))
data0 <- data.frame(data0,factor(A[,2],levels=c(0,1,2)))
data0 <- data.frame(data0,factor(A[,3],levels=c(0,1,2)))
colnames(data0) <- paste0('V',1:3)
data1 <- complete(mice(data0,method='polyreg'),action=1)

Это дает мне ошибку object .Random.seed not found

Наверное, я должен сначала спросить: что не так с этим простым примером? А потом, если возможно, как исправить реальный случай.

Спасибо

...