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?
Respostas:
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.
fonte
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.
fonte
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:
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 o
multinom
comando.Como alternativa, você também pode usar o pacote gbm no R e chamar o
gbm
comando Para criar um classificador de várias classes, basta usar adistribution="multinomial" while using the
função gbm`.fonte