import numpy as np
import matplotlib.pyplot as plt
#Creacion de las listas
listas_listas=[[0, 100], [20,150], [30, 200], [40, 180], [50, 250], [60, 230]]
matriz = np.array(listas_listas)
x = matriz[:,0]
y = matriz[:,1]
print("Dado el conjunto de puntos")
print(matriz)
n = np.size(x)
#Regresion Lineal: Metodo de Minimos Cuadrados
#P1-Obtencion de promedios de X y Y
m_x, m_y = np.mean(x), np.mean(y)
#P2-Calcular sumatoria de XY y sumatoria de XX
sum_xy = np.sum((x-m_x)*(y-m_y))
sum_xx = np.sum((x-m_x)**2)
#P3-Calculo de coeficientes de regresion
b_1 = sum_xy / sum_xx
b_0 = m_y - b_1*m_x
#P4-Valor de la Recta
y_pred = b_1*x + b_0
print("y = "+str(b_1)+"X + "+str(b_0))
#Calculando el ECM
ecm = (np.sum((y_pred - y)**2))/n
print("El ECM es igual a "+str(ecm))
#P5-Graficar
fig, ax = plt.subplots()
ax.plot(x, y_pred, label = "y = 2.36X + 106.43", c= "blue")
ax.set_xlabel("Gastos en Publicidad")
ax.set_ylabel("Ventas")
ax.grid()
ax.legend()
ax.scatter(x, y, c= "red")