Существуют разные методы прогнозирования порядковых и категориальных переменных.
То, что я не понимаю, как это различие имеет значение. Есть ли простой пример, который может прояснить, что пойдет не так, если я уроню заказ? При каких обстоятельствах это не имеет значения? Например, если все независимые переменные являются категориальными / порядковыми, будет ли разница?
Этот связанный вопрос фокусируется на типе независимых переменных. Здесь я спрашиваю о переменных результата.
Изменить: я вижу, что использование структуры заказа уменьшает количество параметров модели, но я все еще не совсем уверен.
Вот пример (взят из введения в упорядоченную логистическую регрессию, где, насколько я вижу, порядковая логистическая регрессия не работает лучше, чем полиномиальная логистическая регрессия:
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) обоих алгоритмов.
Edit2: когда я использую в качестве метода оценки
return(sum(abs(as.numeric(pred)-as.numeric(test_data$apply)))
и оштрафовать «очень неправильные» прогнозы, polr все равно выглядит плохо, то есть сюжет выше не сильно меняется.
источник
ordered factor
, которая улучшит результаты,gradapply$apply <-factor(gradapply$apply, levels= c('unlikely', 'somewhat likely', 'very likely') , ordered = TRUE)
но это не имеет значения. Если вы посмотрите на точность, они очень похожи. Точность, однако, не является хорошим показателем, на который можно положиться.Ответы:
Существует большая сила и точность при обработке Y как порядкового при необходимости. Это вытекает из гораздо меньшего числа параметров в модели (с коэффициентом k, где k на единицу меньше, чем число категорий Y). Есть несколько порядковых моделей. Чаще всего используются пропорциональные шансы и порядковые логистические модели с коэффициентом продолжения.
источник
Если вы игнорируете упорядоченную природу переменных, соответствующие методы будут по-прежнему обеспечивать правильный анализ, но преимущество использования методов для упорядоченных данных заключается в том, что они предоставляют более подробную информацию о порядке и величине значимых переменных.
источник
Если вы хотите смоделировать данные, а зависимая категориальная переменная не имеет порядка (номинального), то вы должны использовать многочленную модель логита. Если зависимая переменная имеет порядок (порядковый номер), то вы можете использовать кумулятивную модель логита (модель пропорциональных шансов).
Лично для меня я считаю, что результаты гораздо проще интерпретировать для модели пропорциональных шансов по сравнению с многочленной моделью, особенно когда вы хотите сообщить о результатах кому-то, кто не обладает статистическими знаниями.
Это не единственные модели, которые вы можете использовать, но они очень типичны.
источник