Es gibt verschiedene Methoden zur Vorhersage von ordinalen und kategorialen Variablen.
Was ich nicht verstehe, ist, wie wichtig diese Unterscheidung ist. Gibt es ein einfaches Beispiel, das verdeutlicht, was passiert, wenn ich die Bestellung storniere? Unter welchen Umständen spielt es keine Rolle? Wenn zum Beispiel auch die unabhängigen Variablen alle kategorisch / ordinal sind, gibt es dann einen Unterschied?
Diese verwandte Frage konzentriert sich auf die Art der unabhängigen Variablen. Hier frage ich nach Ergebnisvariablen.
Bearbeiten: Ich sehe den Punkt, dass die Verwendung der Auftragsstruktur die Anzahl der Modellparameter reduziert, aber ich bin immer noch nicht wirklich überzeugt.
Hier ist ein Beispiel (aus einer Einführung in die geordnete logistische Regression, bei der die ordinale logistische Regression meines Erachtens nicht besser abschneidet als die multinomiale logistische Regression):
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))
Dies zeigt die Verteilung der Anzahl der richtigen Vermutungen (von 40) beider Algorithmen.
Edit2: Wenn ich als Scoring-Methode folgendes verwende
return(sum(abs(as.numeric(pred)-as.numeric(test_data$apply)))
und "sehr falsche" Vorhersagen zu bestrafen, sieht polr immer noch schlecht aus, dh die obige Handlung ändert sich nicht sehr.
quelle
ordered factor
, was die Ergebnisse verbessern würde,gradapply$apply <-factor(gradapply$apply, levels= c('unlikely', 'somewhat likely', 'very likely') , ordered = TRUE)
aber es macht keinen Unterschied. Wenn man sich die Genauigkeit ansieht, sind sich die beiden ziemlich ähnlich. Genauigkeit ist jedoch keine gute Messgröße, auf die man sich ausschließlich verlassen kann.Antworten:
Wenn Y als Ordnungszahl behandelt wird, ergeben sich erhebliche Potenz- und Präzisionsgewinne. Dies ergibt sich aus der viel geringeren Anzahl von Parametern im Modell (um einen Faktor von k, wobei k eins weniger ist als die Anzahl der Kategorien von Y). Es gibt mehrere Ordnungsmodelle. Am gebräuchlichsten sind die ordinalen logistischen Modelle für Proportionalquoten und Fortsetzungsquoten.
quelle
Wenn Sie die geordnete Natur der Variablen ignorieren, liefern die entsprechenden Methoden weiterhin eine korrekte Analyse. Der Vorteil der Verwendung von Methoden für geordnete Daten besteht jedoch darin, dass sie umfassendere Informationen über die Reihenfolge und Größe der signifikanten Variablen liefern.
quelle
Wenn Sie die Daten modellieren möchten und die abhängige kategoriale Variable keine Reihenfolge (nominal) hat, müssen Sie ein multinomiales Logit-Modell verwenden. Wenn die abhängige Variable eine Ordnung (Ordnungszahl) hat, können Sie ein kumulatives Logit-Modell (Proportional-Odds-Modell) verwenden.
Für mich persönlich sind die Ergebnisse für ein Proportional-Odds-Modell viel einfacher zu interpretieren als für ein Multinomial-Modell, insbesondere, wenn Sie die Ergebnisse an jemanden weiterleiten möchten, der sich mit statistischen Problemen nicht auskennt.
Dies sind nicht die einzigen Modelle, die Sie verwenden können, aber sie sind sehr typisch.
quelle