Ответ должен иметь 3 или более уровней - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь выполнить порядковую логистическую регрессию, используя R, но я продолжаю получать эту ошибку, которая говорит: ответ должен иметь 3 или более уровней. Что означает «ответ» в R? Пробовал поиск в гугле, но ничего не объяснил о значении ответа в R. Я вставляю снимок данных, которые пытаюсь регрессировать, и код, который я написал до сих пор:

enter image description here

m <- polr(as.factor(Gender) ~ VeryUnsat + Unsat + Sat + VerySat, data = df, Hess=TRUE)
summary(m)
ctable <- coef(summary(m))
p <- pnorm(abs(ctable[, "t value"]), lower.tail = FALSE) * 2
ctable <- cbind(ctable, "p value" = p)
ci <- confint(m)
exp(coef(m))
exp(cbind(OR = coef(m), ci))`

1 Ответ

0 голосов
/ 15 ноября 2018

Вы должны посмотреть на пример метода polr.Просто введите? Polr в командной строке в RStudio

. Вы увидите, что ваша переменная ответа не очень хорошо определена для того, что ожидает polr (если я не понимаю, что вы пытаетесь сделать)

polr пытаетсядля моделирования многоуровневых упорядоченных переменных, таких как Sat в примере.

Я вижу две проблемы в ваших данных:

  1. у вас есть агрегированные данные, подсчет количества выбороккаждый уровень удовлетворенности для каждой комбинации возраста и пола.

  2. переменная вашего ответа разбита на разные столбцы.Начиная с неагрегированных данных, вам нужно преобразовать в одну переменную с несколькими возможными значениями (VeryUnsat, Unsat, Sat, VerySat)

Вы можете использовать агрегированные данные, еслиметод позволяет указать некоторые веса для каждой комбинации (еще не проверил детали метода).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...