Ich versuche eine geordnete Logit-Regression durchzuführen. Ich führe das Modell so aus (nur ein dummes kleines Modell, das die Anzahl der Unternehmen auf einem Markt anhand von Einkommens- und Bevölkerungsmaßen schätzt). Meine Frage betrifft Vorhersagen.
nfirm.opr<-polr(y~pop0+inc0, Hess = TRUE)
pr_out<-predict(nfirm.opr)
Wenn ich "Vorhersagen" ausführe (mit denen ich versuche, das vorhergesagte y zu erhalten), sind die Ausgaben entweder 0, 3 oder 27, was in keiner Weise die Vorhersage widerspiegelt, die auf meinen manuellen Vorhersagen aus dem Koeffizienten basieren sollte Schätzungen und Abschnitte. Weiß jemand, wie man "genaue" Vorhersagen für mein bestelltes Logit-Modell erhält?
BEARBEITEN
Um meine Bedenken zu verdeutlichen, enthalten meine Antwortdaten Beobachtungen auf allen Ebenen
>head(table(y))
y
0 1 2 3 4 5
29 21 19 27 15 16
wo wie meine Vorhersagevariable sich zu bündeln scheint
> head(table(pr_out))
pr_out
0 1 2 3 4 5
117 0 0 114 0 0
polr()
gegen andere Funktionen verifiziert ? Sie könnten lrm()
aus Paket versuchen rms
: lrmFit <- lrm(y ~ pop0 + inc0); predict(lrmFit, type="fitted.ind")
. Eine weitere Option ist vglm()
aus dem Paket VGAM
: vglmFit <- vglm(y ~ pop0 + inc0, family=propodds); predict(vglmFit, type="response")
. Beide geben die Matrix der vorhergesagten Kategoriewahrscheinlichkeiten zurück. Sehen Sie meine Antwort , um die vorhergesagten Kategorien von dort zu erhalten.
predict
Funktion zurückgegebenen Werte von den manuell generierten? Wie ist Ihre abhängige Variable aufgebaut? Bitte geben Sie ein reproduzierbares Beispiel an.