Qual regressão usar para calcular o resultado da eleição em um sistema multipartidário?

11

Quero fazer uma previsão do resultado das eleições parlamentares. Minha saída será a% que cada parte recebe. Como existem mais de duas partes, a regressão logística não é uma opção viável. Eu poderia fazer uma regressão separada para cada parte, mas nesse caso os resultados seriam de alguma maneira independentes um do outro. Não garantiria que a soma dos resultados fosse 100%.

Que regressão (ou outro método) devo usar? É possível usar esse método em R ou Python através de uma biblioteca específica?

Viktor
fonte
Se você tiver permissão para alterar sua saída para binária (dependendo de qual parte ganhou), a regressão logística multinomial é uma boa opção. Ele ainda considera a saída independente, que pode não ser o que você deseja.
Robert Smith

Respostas:

5

Robert está certo, a regressão logística multinomial é a melhor ferramenta a ser usada. Embora você precise ter um valor inteiro representando a parte como a variável dependente, por exemplo:

1 = maioria conservadora, 2 = maioria trabalhista, 3 = maioria liberal .... (e assim por diante)

Você pode fazer isso no R usando o pacote nnet. Aqui é um bom lugar para analisar rapidamente como usá-lo.

Glen Moutrie
fonte
3

No que você deseja basear sua previsão? Eu tentei prever os resultados das eleições multipartidárias para minha tese com base nos anos anteriores e, em seguida, usar os resultados para algumas assembleias de voto deste ano prevêem os resultados em todas as outras assembleias de voto. Para isso, o modelo linear com o qual comparei estimou o número de votos que cada partido obteria regredindo em relação aos votos dos anos anteriores. Se você tiver o número estimado de votos para todas as partes, poderá calcular a porcentagem a partir disso. Consulte Previsões de amostras não aleatórias para o documento relevante, que estende o modelo linear.

Bas
fonte
2

Isso não é uma regressão, mas um problema de classificação de várias classes. A saída é tipicamente as probabilidades de todas as classes para qualquer instância de teste (linha de teste). Portanto, no seu caso, a saída para qualquer linha de teste do modelo treinado será da seguinte forma:

prob_1, prob_2, prob_3,..., prob_k

onde prob_i denota a probabilidade da i-ésima classe (no seu caso, i-ésima parte), assumindo que haja k classes na variável de resposta. Observe que a soma dessas k probabilidades será 1. A previsão de classe neste caso será a classe que tem a probabilidade máxima.

Existem muitos classificadores em R que fazem a classificação de várias classes. Você poderia usar a regressão logística com suporte multi-classe através do pacote nnet no R e chamando omultinom comando.

Como alternativa, você também pode usar o pacote gbm no R e chamar o gbmcomando Para criar um classificador de várias classes, basta usar a distribution="multinomial" while using thefunção gbm`.

Nitesh
fonte