Стрипплот в MICE - PullRequest
0 голосов
/ 28 мая 2018

Я использую пакет MICE в R, чтобы сделать несколько вменений.Я сделал несколько вменений только с числовыми переменными, метод вменения - это прогнозное сопоставление средних значений, и когда я использую команду stripplot (имя вмененного набора данных), я вижу наблюдаемые и вмененные значения всех переменных.

Проблема возникает, когда я пытаюсь сделать вменение для комбинации категориальных и числовых переменных.Метод вменения - это PMM для числовых переменных и логистическая регрессия для категориальных.Команда stripplot показывает только числовые переменные.Я пытался указать с помощью этих команд, edu - это категориальная переменная с 2 значениями:

stripplot(imp, imp$edu)
stripplot(imp, names(imp$edu))

И я получил эту ошибку:

Ошибка в stripplot.mids (imp, imp$ edu): невозможно заполнить расширенную формулу.

Кто-нибудь знает, как я могу построить значения наблюдаемых и вмененных значений как для числовых, так и для категориальных переменных?

1 Ответ

0 голосов
/ 07 июня 2018

Одна вещь, которую вы можете попробовать, - это получить вмененный dataset в виде data.frame и просто использовать обычные функции построения графиков.Сначала получите наборы данных, включая исходный набор данных с пропущенными значениями (imp является объектом mice.mids, т. Е. Результатом запуска мышей)

impL <- complete(imp,"long",include = T)

Затем добавьте пустышку, указывающую, какие наборы данных вменяются

impL$Imputed <- factor(impL$.imp >0,labels = c("Observed","Imputed"))

Тогда вы можете просто использовать функции построения графиков для каждой переменной.Это дает то преимущество, что вы можете создавать более приятные сюжеты.Например, используя ggplot (пакет ggplot2) для создания барплота по категориальной переменной:

ggplot(impL[which(!is.na(impL$var1)),],aes(x = var1)) + 
geom_bar(aes(y = ..prop.., group = Imputed)) + facet_wrap(Imputed ~ ,ncol=1,nrow=2)

!is.na включен, чтобы избежать построения графика NA.var1 - это переменная, которую вы хотите построить.Для непрерывной переменной вы можете создать график плотности.

ggplot(impL, aes(x = var2, colour = Imputed)) + geom_density()

Чтобы посмотреть на все уникальные значения, вы можете добавить group = .imp в скобках aes.Надеюсь, это поможет

...