Welche Regression muss verwendet werden, um das Wahlergebnis in einem Mehrparteiensystem zu berechnen?

11

Ich möchte eine Prognose für das Ergebnis der Parlamentswahlen abgeben. Meine Ausgabe ist der Prozentsatz, den jede Partei erhält. Es gibt mehr als zwei Parteien, daher ist eine logistische Regression keine praktikable Option. Ich könnte für jede Partei eine eigene Regression vornehmen, aber in diesem Fall wären die Ergebnisse in gewisser Weise unabhängig voneinander. Es würde nicht sicherstellen, dass die Summe der Ergebnisse 100% beträgt.

Welche Regression (oder andere Methode) sollte ich verwenden? Ist es möglich, diese Methode in R oder Python über eine bestimmte Bibliothek zu verwenden?

Viktor
quelle
Wenn Sie Ihre Ausgabe in binär ändern dürfen (abhängig davon, welche Partei gewonnen hat), ist die multinomiale logistische Regression eine gute Lösung. Es werden immer noch unabhängige Ausgaben berücksichtigt, die möglicherweise nicht Ihren Wünschen entsprechen.
Robert Smith

Antworten:

5

Robert hat recht, multinomiale logistische Regression ist das beste Werkzeug. Obwohl Sie einen ganzzahligen Wert benötigen würden, der die Partei als abhängige Variable darstellt, zum Beispiel:

1 = konservative Mehrheit, 2 = Arbeitsmehrheit, 3 = liberale Mehrheit .... (und so weiter)

Sie können dies in R mit dem nnet-Paket ausführen. Hier ist ein guter Ort, um schnell zu erfahren, wie man es benutzt.

Glen Moutrie
quelle
3

Worauf möchten Sie Ihre Vorhersage stützen? Ich habe versucht, Mehrparteien-Wahlergebnisse für meine Abschlussarbeit auf der Grundlage der Vorjahre vorherzusagen und dann anhand der Ergebnisse einiger Wahllokale aus diesem Jahr die Ergebnisse aller anderen Wahllokale vorherzusagen. Dafür schätzte das lineare Modell, mit dem ich verglichen habe, die Anzahl der Stimmen, die jede Partei erhalten würde, wenn sie sich gegenüber den Stimmen der Vorjahre zurückbilden würde. Wenn Sie die geschätzte Anzahl der Stimmen für alle Parteien haben, können Sie den Prozentsatz daraus berechnen. Unter Prognosen aus nicht zufälligen Stichproben finden Sie das entsprechende Dokument , das das lineare Modell erweitert.

Bas
quelle
2

Dies ist keine Regression, sondern ein Klassifizierungsproblem für mehrere Klassen. Die Ausgabe ist normalerweise die Wahrscheinlichkeit aller Klassen für eine bestimmte Testinstanz (Testzeile). In Ihrem Fall hat die Ausgabe für eine bestimmte Testzeile des trainierten Modells die folgende Form:

prob_1, prob_2, prob_3,..., prob_k

Dabei bezeichnet prob_i die Wahrscheinlichkeit der i-ten Klasse (in Ihrem Fall der i-ten Partei), vorausgesetzt, die Antwortvariable enthält k Klassen. Es ist zu beachten, dass die Summe dieser k Wahrscheinlichkeiten 1 sein wird. Die Klassenvorhersage wird in diesem Fall die Klasse sein, die die maximale Wahrscheinlichkeit hat.

Es gibt viele Klassifizierer in R, die eine Mehrklassenklassifizierung durchführen. Sie können die logistische Regression mit Unterstützung für mehrere Klassen über das nnet- Paket in R verwenden und den multinomBefehl aufrufen .

Alternativ können Sie auch das Paket gbm in R verwenden und den gbmBefehl aufrufen . Verwenden distribution="multinomial" while using theSie zum Erstellen eines Klassifikators für mehrere Klassen einfach die Funktion gbm`.

Nitesh
quelle