Quale regressione utilizzare per calcolare il risultato delle elezioni in un sistema multipartitico?


11

Voglio fare una previsione per il risultato delle elezioni parlamentari. La mia produzione sarà la% che ciascuna parte riceve. Vi sono più di 2 parti, quindi la regressione logistica non è un'opzione praticabile. Potrei fare una regressione separata per ciascuna parte, ma in tal caso i risultati sarebbero in qualche modo indipendenti l'uno dall'altro. Non garantirebbe che la somma dei risultati sia del 100%.

Quale regressione (o altro metodo) dovrei usare? È possibile utilizzare questo metodo in R o Python tramite una libreria specifica?


Se ti è permesso cambiare il tuo output in binario (a seconda di quale parte ha vinto), la regressione logistica multinomiale è adatta. Considera comunque un output indipendente che potrebbe non essere quello che desideri.
Robert Smith,

Risposte:


5

Robert ha ragione, la regressione logistica multinomiale è lo strumento migliore da usare. Sebbene sia necessario disporre di un valore intero che rappresenti la parte come variabile dipendente, ad esempio:

1 = maggioranza conservatrice, 2 = maggioranza del lavoro, 3 = maggioranza liberale .... (e così via)

Puoi eseguirlo in R usando il pacchetto nnet. Ecco un buon posto per scoprire rapidamente come usarlo.


3

Su cosa vuoi basare la tua previsione? Ho cercato di prevedere i risultati delle elezioni multipartitiche per la mia tesi sulla base degli anni precedenti e quindi utilizzando i risultati per alcuni seggi elettorali di quest'anno, prevedere i risultati in tutti gli altri seggi elettorali. Per questo il modello lineare con cui ho confrontato ha stimato il numero di voti che ciascuna parte avrebbe ottenuto regredendo sui voti degli anni precedenti. Se hai il numero stimato di voti per tutte le parti puoi calcolare la percentuale da quella. Vedere le previsioni da campioni non casuali per il documento pertinente, che estende il modello lineare.


2

Questa non è una regressione ma un problema di classificazione multi-classe. L'output è in genere le probabilità di tutte le classi per una determinata istanza di test (riga di test). Quindi, nel tuo caso, l'output per una determinata riga di test dal modello addestrato sarà nella forma:

prob_1, prob_2, prob_3,..., prob_k

dove prob_i indica la probabilità della i-esima classe (nel tuo caso la i-esima parte), supponendo che ci siano k classi nella variabile di risposta. Nota che la somma di queste k probabilità sarà 1. La previsione della classe in questo caso sarà la classe che ha la massima probabilità.

Esistono molti classificatori in R che eseguono la classificazione multi-classe. È possibile utilizzare la regressione logistica con supporto multi-classe tramite il pacchetto nnet in R e invocando il multinomcomando.

In alternativa, puoi anche usare il pacchetto gbm in R e invocare il gbmcomando. Per creare un classificatore multi-classe, basta usare la distribution="multinomial" while using thefunzione gbm`.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.