Cosa ottengo se considero il risultato come ordinale anziché categorico?


12

Esistono diversi metodi per la previsione di variabili ordinali e categoriali.

Quello che non capisco è quanto conta questa distinzione. C'è un semplice esempio che può chiarire cosa non va se cado l'ordine? In quali circostanze non importa? Ad esempio, se anche le variabili indipendenti fossero tutte categoriali / ordinali, ci sarebbe una differenza?

Questa domanda correlata si concentra sul tipo di variabili indipendenti. Qui sto chiedendo informazioni sulle variabili di risultato.

Modifica: vedo il punto che l'utilizzo della struttura dell'ordine riduce il numero di parametri del modello, ma non sono ancora molto convinto.

Ecco un esempio (tratto da un'introduzione alla regressione logistica ordinata in cui per quanto posso vedere la regressione logistica ordinale non funziona meglio della regressione logistica multinomiale:

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))

che mostra la distribuzione del numero di ipotesi giuste (su 40) di entrambi gli algoritmi.

polr_vs_multinom

Edit2: quando uso come metodo di punteggio quanto segue

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

e penalizzare previsioni "molto sbagliate", polr sembra ancora brutto, cioè la trama sopra non cambia molto.


1
Il tuo esempio usa una regola discontinua per il punteggio improprio, che in generale non è una buona base per confrontare gruppi di previsioni (è arbitrario e manca di potenza e precisione).
Frank Harrell,

Presumo che potresti dover imporre che la variabile di output sia una ordered factor, il che migliorerebbe i risultati: gradapply$apply <-factor(gradapply$apply, levels= c('unlikely', 'somewhat likely', 'very likely') , ordered = TRUE)ma non fa differenza. Se si guarda alla precisione, i due sono praticamente simili. Tuttavia, la precisione non è una buona metrica su cui fare affidamento.
Zhubarb,

Risposte:


10

Ci sono importanti vantaggi in termini di potenza e precisione trattando Y come ordinale quando appropriato. Ciò deriva dal numero molto più basso di parametri nel modello (per un fattore di k dove k è uno in meno del numero di categorie di Y). Esistono diversi modelli ordinali. I più comunemente usati sono i modelli logistici ordinali delle proporzioni e del rapporto di continuazione.


1
+1 La riduzione dei parametri significa anche che i modelli ordinali possono essere molto più facili da adattare.
JMS,

4

Se si ignora la natura ordinata delle variabili, i metodi appropriati forniranno comunque un'analisi corretta, ma il vantaggio di utilizzare i metodi per i dati ordinati è che forniscono maggiori informazioni sull'ordine e sull'entità delle variabili significative.


Non riesco a vedere quali informazioni sull'ordine sono fornite.
Karsten W.

1
Supponiamo che una variabile abbia tre livelli, basso, medio, alto. Un'analisi ordinale non potrebbe suggerire alcuna differenza tra basso e medio, ma significato per alto. La stima dei parametri potrebbe fornire informazioni come "quando la variabile X è alta, si stima che l'effetto sia 2,5 volte maggiore di quello basso o medio", quindi direzione e magnitudine.
Murray,

2

Se si desidera modellare i dati e la variabile categoriale dipendente non ha ordinamento (nominale), è necessario utilizzare un modello logit multinomiale. Se la variabile dipendente ha un ordinamento (ordinale), è possibile utilizzare un modello logit cumulativo (modello di probabilità proporzionale).

Personalmente, trovo i risultati molto più facili da interpretare per un modello di probabilità proporzionale rispetto a un modello multinomiale, specialmente quando si desidera segnalare i risultati a qualcuno che non è statisticamente informato.

Questi non sono gli unici modelli che puoi usare ma sono molto tipici.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.