import numpy as np
# Las features son las predicciones de la última encuesta de Cifra, Equipos, Radar y Factum, en ese orden
encuestas_X=np.array([[50.9,31.8,12.5, #Cifra
52.5,31.6,11.1, #Equipos
54.0,29.0,08.0, #Radar
54.5,31.0,12.0], #Factum
#2004
[45.0,31.0,12.0, #Cifra
44.0,30.0,10.0, #Equipos
45.0,29.0,14.0, #Radar
46.0,34.0,10.0],#Factum
#2009
[43.0,32.0,18.0, #Cifra
43.6,33.4,15.1, #Equipos
45.6,31.3,15.2, #Radar
44.0,34.0,15.0] #Factum
#2014
])
# Resultados reales en 2004 y 2009 para cada partido
resultados_frente=np.array([50.54,48.0,47.8])
resultados_blancos=np.array([34.3,29.0, 30.8])
resultados_colorados=np.array([10.36,17.0, 12.8])
resultado_ballotage_fa=[54.63,53.48]
resultado_ballotage_blancos=[45.37,41.17]
from sklearn import linear_model
# Predicciones de las encuestas para 2019
encuestas_2019=np.array([38.0,27.0,11.0, #Cifra -- Final
41.1,28.7,11.7, #Equipos
43.6,24.5,15.8, #Radar -- Final
40.0,28.0,13.0]).reshape(1,-1) #Factum -- Final
print ("---")
print ("Predicciones utilizando RegressRidge")
print ("---")
# Utilizo un alpha alto porque las features están correlacionadas
clf=linear_model.Ridge(alpha=50.0)
clf.fit(encuestas_X,resultados_frente)
print("Predicción para el Frente:", clf.predict(encuestas_2019))
clf.fit(encuestas_X,resultados_blancos)
print ("Predicción para los blancos:",clf.predict(encuestas_2019))
clf.fit(encuestas_X,resultados_colorados)
print ("Predicción para los colorados:",clf.predict(encuestas_2019))
# Predicción ballotage
print ("---")
print ("Predicciones ballotage (basados en 2009,2014)")
print ("---")
clf=linear_model.Ridge(alpha=70.0)
clf.fit(encuestas_X[1:3],resultado_ballotage_fa)
print("Predicción para el Frente:", clf.predict(encuestas_2019))
clf.fit(encuestas_X[1:3],resultado_ballotage_blancos)
print ("Predicción para los blancos:",clf.predict(encuestas_2019))