Jakiej regresji użyć do obliczenia wyniku wyborów w systemie wielopartyjnym?


11

Chcę przewidzieć wynik wyborów parlamentarnych. Mój wynik to% otrzymany przez każdą ze stron. Istnieje więcej niż 2 strony, więc regresja logistyczna nie jest realną opcją. Mógłbym dokonać osobnej regresji dla każdej ze stron, ale w takim przypadku wyniki byłyby w pewien sposób niezależne od siebie. Nie zapewniłoby to, że suma wyników wynosiłaby 100%.

Jakiej regresji (lub innej metody) powinienem użyć? Czy można używać tej metody w języku R lub Python za pośrednictwem określonej biblioteki?


Jeśli możesz zmienić dane wyjściowe na binarne (w zależności od strony, która wygrała), wielomianowa regresja logistyczna dobrze pasuje. Nadal rozważa niezależne wyjście, które może nie być tym, czego chcesz.
Robert Smith

Odpowiedzi:


5

Robert ma rację, wielomianowa regresja logistyczna jest najlepszym narzędziem do użycia. Chociaż musisz mieć wartość całkowitą reprezentującą imprezę jako zmienną zależną, na przykład:

1 = większość konserwatywna, 2 = większość robotnicza, 3 = większość liberalna .... (i tak dalej)

Możesz to zrobić w R, używając pakietu nnet. Oto dobre miejsce, aby szybko przekonać się, jak z niego korzystać.


3

Na czym chcesz oprzeć swoje prognozy? Próbowałem przewidzieć wyniki wyborów dla wielu osób na podstawie mojej pracy magisterskiej na podstawie poprzednich lat, a następnie wykorzystując wyniki dla niektórych lokali wyborczych z tego roku, przewidział wyniki we wszystkich innych lokalach wyborczych. W tym celu w modelu liniowym, z którym porównałem, oszacowano liczbę głosów, jaką każda partia uzyskałaby, cofając się względem głosów z poprzednich lat. Jeśli masz szacunkową liczbę głosów dla wszystkich stron, możesz obliczyć procent z tego. Zobacz Prognozy z nielosowych próbek dla odpowiedniego papieru, który rozszerza model liniowy.


2

To nie jest regresja, ale problem klasyfikacji wielu klas. Dane wyjściowe to zazwyczaj prawdopodobieństwa wszystkich klas dla dowolnej instancji testowej (wiersza testowego). W twoim przypadku dane wyjściowe dla dowolnego wiersza testowego z wyuczonego modelu będą miały postać:

prob_1, prob_2, prob_3,..., prob_k

gdzie prob_i oznacza prawdopodobieństwo i-tej klasy (w twoim przypadku i-tej strony), zakładając, że w zmiennej odpowiedzi istnieje k klas. Zauważ, że suma tych k prawdopodobieństw będzie wynosić 1. Prognozą klasy w tym przypadku będzie klasa o najwyższym prawdopodobieństwie.

Istnieje wiele klasyfikatorów w R, które dokonują klasyfikacji wielu klas. Można użyć regresji logistycznej z obsługą wielu klas poprzez pakiet nnet w R i wywoływanie multinompolecenia.

Alternatywnie możesz również użyć pakietu gbm w R i wywołać gbmpolecenie. Aby utworzyć klasyfikator distribution="multinomial" while using thewieloklasowy , wystarczy użyć funkcji gbm`.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.