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

12

Существуют разные методы прогнозирования порядковых и категориальных переменных.

То, что я не понимаю, как это различие имеет значение. Есть ли простой пример, который может прояснить, что пойдет не так, если я уроню заказ? При каких обстоятельствах это не имеет значения? Например, если все независимые переменные являются категориальными / порядковыми, будет ли разница?

Этот связанный вопрос фокусируется на типе независимых переменных. Здесь я спрашиваю о переменных результата.

Изменить: я вижу, что использование структуры заказа уменьшает количество параметров модели, но я все еще не совсем уверен.

Вот пример (взят из введения в упорядоченную логистическую регрессию, где, насколько я вижу, порядковая логистическая регрессия не работает лучше, чем полиномиальная логистическая регрессия:

library(nnet)
library(MASS)
gradapply <- read.csv(url("http://www.ats.ucla.edu/stat/r/dae/ologit.csv"), colClasses=c("factor", "factor", "factor", "numeric"))

ordered_result <- function() {
  train_rows <- sample(nrow(gradapply), round(nrow(gradapply)*0.9))
  train_data <- gradapply[train_rows,]
  test_data <- gradapply[setdiff(1:nrow(gradapply), train_rows),]
  m <- polr(apply~pared+gpa, data=train_data)
  pred <- predict(m, test_data)
  return(sum(pred==test_data$apply))
}

multinomial_result <- function() {
  train_rows <- sample(nrow(gradapply), round(nrow(gradapply)*0.9))
  train_data <- gradapply[train_rows,]
  test_data <- gradapply[setdiff(1:nrow(gradapply), train_rows),]
  m <- multinom(apply~pared+gpa, data=train_data)
  pred <- predict(m, test_data)
  return(sum(pred==test_data$apply))
}

n <- 100

polr_res <- replicate(n, ordered_result())
multinom_res <- replicate(n, multinomial_result())
boxplot(data.frame(polr=polr_res, multinom=multinom_res))

который показывает распределение количества правильных догадок (из 40) обоих алгоритмов.

polr_vs_multinom

Edit2: когда я использую в качестве метода оценки

return(sum(abs(as.numeric(pred)-as.numeric(test_data$apply)))

и оштрафовать «очень неправильные» прогнозы, polr все равно выглядит плохо, то есть сюжет выше не сильно меняется.

Карстен В.
источник
1
В вашем примере используется прерывистое неправильное правило оценки, которое, как правило, не является хорошей основой для сравнения наборов прогнозов (оно произвольно и не имеет силы и точности).
Фрэнк Харрелл
Я предположил, что вам, возможно, придется принудительно установить выходную переменную ordered factor, которая улучшит результаты, gradapply$apply <-factor(gradapply$apply, levels= c('unlikely', 'somewhat likely', 'very likely') , ordered = TRUE)но это не имеет значения. Если вы посмотрите на точность, они очень похожи. Точность, однако, не является хорошим показателем, на который можно положиться.
Жубарб

Ответы:

10

Существует большая сила и точность при обработке Y как порядкового при необходимости. Это вытекает из гораздо меньшего числа параметров в модели (с коэффициентом k, где k на единицу меньше, чем число категорий Y). Есть несколько порядковых моделей. Чаще всего используются пропорциональные шансы и порядковые логистические модели с коэффициентом продолжения.

Фрэнк Харрелл
источник
1
+1 Сокращение параметров также означает, что порядковые модели могут быть намного проще в использовании.
JMS
4

Если вы игнорируете упорядоченную природу переменных, соответствующие методы будут по-прежнему обеспечивать правильный анализ, но преимущество использования методов для упорядоченных данных заключается в том, что они предоставляют более подробную информацию о порядке и величине значимых переменных.

Мюррей
источник
Я не вижу, какая информация о заказе предоставляется.
Карстен В.
1
Предположим, переменная имеет три уровня: низкий, средний, высокий. Порядковый анализ может предложить не разницу между низким и средним, но значимость для высокого. Оценка параметра может предоставить такую ​​информацию, как «когда переменная X высока, эффект оценивается в 2,5 раза больше, чем низкий или средний» - отсюда направление и величина.
Мюррей
2

Если вы хотите смоделировать данные, а зависимая категориальная переменная не имеет порядка (номинального), то вы должны использовать многочленную модель логита. Если зависимая переменная имеет порядок (порядковый номер), то вы можете использовать кумулятивную модель логита (модель пропорциональных шансов).

Лично для меня я считаю, что результаты гораздо проще интерпретировать для модели пропорциональных шансов по сравнению с многочленной моделью, особенно когда вы хотите сообщить о результатах кому-то, кто не обладает статистическими знаниями.

Это не единственные модели, которые вы можете использовать, но они очень типичны.

лощина
источник