Istnieją różne metody przewidywania zmiennych porządkowych i kategorialnych.
Nie rozumiem, jak ważne jest to rozróżnienie. Czy istnieje prosty przykład, który może wyjaśnić, co się stanie, jeśli złożę zamówienie? W jakich okolicznościach to nie ma znaczenia? Na przykład, jeśli wszystkie zmienne niezależne również są kategoryczne / porządkowe, czy byłaby różnica?
To powiązane pytanie koncentruje się na rodzaju zmiennych niezależnych. Tutaj pytam o zmienne wyników.
Edycja: Widzę sens, że użycie struktury zamówień zmniejsza liczbę parametrów modelu, ale nadal nie jestem przekonany.
Oto przykład (zaczerpnięty ze wstępu do uporządkowanej regresji logistycznej, w której o ile widzę porządkową regresję logistyczną nie działa lepiej niż wielomianowa regresja logistyczna:
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))
który pokazuje rozkład liczby trafnych domysłów (spośród 40) obu algorytmów.
Edycja2: Kiedy używam jako metody punktacji, następujące
return(sum(abs(as.numeric(pred)-as.numeric(test_data$apply)))
i karać za „bardzo złe” przewidywania, polr nadal wygląda źle, tj. powyższy wykres niewiele się zmienia.
źródło
ordered factor
, co poprawiłoby wyniki:gradapply$apply <-factor(gradapply$apply, levels= c('unlikely', 'somewhat likely', 'very likely') , ordered = TRUE)
ale to nie robi różnicy. Jeśli spojrzysz na dokładność, oba są bardzo podobne. Dokładność nie jest jednak dobrą miarą, na której można polegać.Odpowiedzi:
Istnieją znaczące zyski mocy i precyzji, gdy traktujesz Y jako porządek porządkowy, gdy jest to właściwe. Wynika to ze znacznie mniejszej liczby parametrów w modelu (o współczynnik k, gdzie k jest o jeden mniejszy niż liczba kategorii Y). Istnieje kilka modeli porządkowych. Najczęściej stosowane są porządkowe modele logistyczne proporcjonalnych szans i kontynuacji.
źródło
Jeśli zignorujesz uporządkowany charakter zmiennych, odpowiednie metody nadal zapewnią poprawną analizę, ale zaletą stosowania metod dla uporządkowanych danych jest to, że dostarczają one więcej informacji na temat kolejności i wielkości znaczących zmiennych.
źródło
Jeśli chcesz modelować dane, a zależna zmienna kategorialna nie ma uporządkowania (nominalna), musisz użyć wielomianowego modelu logit. Jeśli zmienna zależna ma uporządkowanie (porządkowe), możesz użyć skumulowanego modelu logit (model proporcjonalnych szans).
Dla mnie osobiście wyniki są znacznie łatwiejsze do interpretacji dla modelu proporcjonalnych szans w porównaniu do modelu wielomianowego, szczególnie gdy chcesz raportować wyniki komuś, kto nie ma wiedzy statystycznej.
Nie są to jedyne modele, których możesz użyć, ale są one bardzo typowe.
źródło