Quiero hacer una predicción del resultado de las elecciones parlamentarias. Mi salida será el% que recibe cada parte. Hay más de 2 partes, por lo que la regresión logística no es una opción viable. Podría hacer una regresión separada para cada parte, pero en ese caso los resultados serían de alguna manera independientes entre sí. No garantizaría que la suma de los resultados fuera del 100%.
¿Qué regresión (u otro método) debo usar? ¿Es posible usar este método en R o Python a través de una biblioteca específica?
Respuestas:
Robert tiene razón, la regresión logística multinomial es la mejor herramienta para usar. Aunque necesitaría tener un valor entero que represente a la parte como la variable dependiente, por ejemplo:
1 = mayoría conservadora, 2 = mayoría laboral, 3 = mayoría liberal ... (y así sucesivamente)
Puede realizar esto en R usando el paquete nnet. Aquí hay un buen lugar para ver rápidamente cómo usarlo.
fuente
¿En qué quieres basar tu predicción? Traté de predecir los resultados de las elecciones multipartidistas para mi tesis en base a años anteriores y luego, utilizando los resultados de algunos colegios electorales de este año, pronostico los resultados en todos los demás colegios electorales. Para esto, el modelo lineal con el que comparé estimó el número de votos que obtendría cada partido al retroceder sobre los votos de años anteriores. Si tiene el número estimado de votos para todas las partes, puede calcular el porcentaje a partir de eso. Vea Pronósticos de muestras no aleatorias para el artículo relevante, que extiende el modelo lineal.
fuente
Esto no es una regresión, sino un problema de clasificación de varias clases. La salida es típicamente las probabilidades de todas las clases para cualquier instancia de prueba dada (fila de prueba). Entonces, en su caso, la salida para cualquier fila de prueba dada del modelo entrenado tendrá la forma:
donde prob_i denota la probabilidad de la i-ésima clase (en su caso i-ésima parte), suponiendo que hay k clases en la variable de respuesta. Tenga en cuenta que la suma de estas k probabilidades será 1. La predicción de clase en este caso será la clase que tenga la probabilidad máxima.
Hay muchos clasificadores en R que hacen una clasificación de varias clases. Puede usar la regresión logística con soporte de múltiples clases a través del paquete nnet en R e invocar el
multinom
comando.Como alternativa, también puede usar el paquete gbm en R e invocar el
gbm
comando. Para crear un clasificador de clases múltiples, simplemente use ladistribution="multinomial" while using the
función gbm`.fuente