R: упорядоченная логистическая регрессия с множественными данными вменения (пакет amelia)

Я анализирую данные Европейского социального исследования. Из-за отсутствия большого количества данных я использовал пакет amelia для вменения. Зависимое значение является порядковым с 4-мя значениями, поэтому я планировал выполнить упорядоченную логистическую регрессию с функцией ologit в пакете Zelig:

z.out <- zelig(as.factor(Y) ~ X1 + X2, model = "ologit", data = ameliadata)

Этот код будет запущен, но когда я запрошу результаты, отображается следующий код ошибки:

z.out:

Модель: ошибка комбинированных вычислений в se [i,] ‹- sqrt (diag (vcovlist [[i]])): количество заменяемых элементов не кратно длине замены

У меня есть пять отдельных наборов условно исчисленных данных. Анализируя отдельно, я могу использовать Зелиг и функцию «ologit» с каждым из этих пяти. Проблема возникает только тогда, когда я использую свой комбинированный объект данных amelia. Я пытался оценить разные модели с одним и тем же выходом амелии, и, похоже, у меня есть проблема только с теми, которые связаны с упорядоченной регрессией. Например, "ls" -модель работает нормально, и если я изменю зависимую переменную на дихотомическую, я также могу без проблем запустить "logit" -модель.

Поэтому мне интересно, удавалось ли кому-нибудь запускать ologit с zelig на данных amelia ранее или есть ли у кого-нибудь представление о том, в чем может быть проблема? Буду очень признателен за любые идеи и предложения. Большое спасибо за ваше время и помощь.

Это пример с набором данных вина из порядкового номера:

library(Amelia)
library(Zelig)
library(ordinal)

data(wine)
w <- wine

set.seed(10)
w[sample(1:nrow(w), 20), "response"] <- NA
w[sample(1:nrow(w), 20), "rating"] <- NA
w[sample(1:nrow(w), 20), "temp"] <- NA
w[sample(1:nrow(w), 5), "contact"] <- NA
w[sample(1:nrow(w), 5), "bottle"] <- NA


w.amelia <- amelia(w, m = 5, idvars="bottle", ords = c("rating","judge"),
                     noms = c("contact", "temp"),
                     incheck = TRUE)

z.out <- zelig(rating ~ contact + temp, model = "ologit", data = w.amelia)

summary(z.out)

person Nora H.    schedule 20.04.2019    source источник


Ответы (1)


Похоже, что функция zilig (с model = "ologit") плохо работает с объектом amelia.
Для этого вы можете вызвать функцию zilig индивидуально для каждого из 5 вмененных наборов данных с помощью пакета amelia. Ниже мы можем увидеть подобранные модели для двух вмененных наборов данных.

z.out1 <- zelig(rating ~ contact + temp, model = "ologit", data = w.amelia$imputations$imp1)
z.out2 <- zelig(rating ~ contact + temp, model = "ologit", data = w.amelia$imputations$imp2)

Получение вывода для каждого вмененного данных:

> summary(z.out1)
Model: 
Call:
z5$zelig(formula = rating ~ contact + temp, data = w.amelia$imputations$imp1)

Coefficients:
           Value Std. Error t value
contactyes 1.973     0.4937   3.997
tempwarm   1.493     0.4617   3.235

Intercepts:
    Value   Std. Error t value
1|2 -1.2246  0.4425    -2.7675
2|3  1.0072  0.3884     2.5931
3|4  2.8052  0.5101     5.4987
4|5  4.0133  0.6135     6.5411

Residual Deviance: 189.7068 
AIC: 201.7068 
Next step: Use 'setx' method
> summary(z.out2)
Model: 
Call:
z5$zelig(formula = rating ~ contact + temp, data = w.amelia$imputations$imp2)

Coefficients:
           Value Std. Error t value
contactyes  1.73     0.4760   3.635
tempwarm    1.69     0.4774   3.539

Intercepts:
    Value   Std. Error t value
1|2 -0.6469  0.4850    -1.3338
2|3  1.3290  0.4659     2.8525
3|4  2.8718  0.5571     5.1547
4|5  4.2483  0.6751     6.2932

Residual Deviance: 198.7817 
AIC: 210.7817 
Next step: Use 'setx' method
person claudius    schedule 23.09.2019
comment
Большое спасибо за ваш ответ! Я действительно надеялся, что это был какой-то способ использовать объект Amelia, но я думаю, как вы говорите, это просто не работает, и, вероятно, лучшим решением является анализ наборов данных по отдельности. Очень интересно услышать, что это не работает не только у меня. Еще раз спасибо за то, что взглянули на это и за ваш обстоятельный ответ. - person Nora H.; 23.09.2019