Existen diferentes métodos para la predicción de variables ordinales y categóricas.
Lo que no entiendo es cómo importa esta distinción. ¿Hay un ejemplo simple que pueda aclarar qué sale mal si abandono el pedido? ¿En qué circunstancias no importa? Por ejemplo, si las variables independientes también son categóricas / ordinales, ¿habría alguna diferencia?
Esta pregunta relacionada se centra en el tipo de variables independientes. Aquí estoy preguntando sobre las variables de resultado.
Editar: veo el punto de que usar la estructura de orden reduce la cantidad de parámetros del modelo, pero todavía no estoy realmente convencido.
Aquí hay un ejemplo (tomado de una introducción a la regresión logística ordenada donde, por lo que puedo ver, la regresión logística ordinal no funciona mejor que la regresión logística multinomial:
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))
que muestra la distribución del número de conjeturas correctas (de 40) de ambos algoritmos.
Edit2: cuando uso como método de puntuación lo siguiente
return(sum(abs(as.numeric(pred)-as.numeric(test_data$apply)))
y penalizar las predicciones "muy equivocadas", polr todavía se ve mal, es decir, la trama anterior no cambia mucho.
fuente
ordered factor
, lo que mejoraría los resultados:gradapply$apply <-factor(gradapply$apply, levels= c('unlikely', 'somewhat likely', 'very likely') , ordered = TRUE)
pero no hace ninguna diferencia. Si nos fijamos en la precisión, los dos son bastante similares. Sin embargo, la precisión no es una buena métrica en la que confiar únicamente.Respuestas:
Hay grandes ganancias de poder y precisión al tratar Y como ordinal cuando es apropiado. Esto surge del número mucho menor de parámetros en el modelo (por un factor de k donde k es uno menos que el número de categorías de Y). Hay varios modelos ordinales. Los más utilizados son los modelos logísticos ordinales de probabilidad proporcional y relación de continuación.
fuente
Si ignora la naturaleza ordenada de las variables, los métodos apropiados aún proporcionarán un análisis correcto, pero la ventaja de usar métodos para datos ordenados es que proporcionan una mayor información sobre el orden y la magnitud de las variables significativas.
fuente
Si desea modelar los datos y la variable categórica dependiente no tiene ordenación (nominal), debe usar un modelo logit multinomial. Si la variable dependiente tiene un orden (ordinal), entonces puede usar un modelo logit acumulativo (modelo de probabilidades proporcionales).
Personalmente, considero que los resultados son mucho más fáciles de interpretar para un modelo de probabilidades proporcionales en comparación con un modelo multinomial, especialmente cuando desea informar los resultados a alguien que no tiene conocimientos estadísticos.
Estos no son los únicos modelos que puede usar, pero son muy típicos.
fuente