# Importar las librerías necesarias
import numpy as np
import matplotlib.pyplot as plt
# Función de regresión lineal
def estimateb0b1(x,y):
# número de datos que va a tener el arreglo
n = np.size(x)
# cálculo de los promedios de X y Y
mx,my = np.mean(x), np.mean(y)
# Calcular la sumatoria de XY y la sumatoria de XX
# sum de numpy recorre el vector y suma todos los elementos
# entre sí y regresa un escalar
sumatoriaXY = np.sum((x - mx)*(y - my))
sumatoriaXX = np.sum(x*(x - mx))
# coeficientes de regresión: b1 y bo
b1 = sumatoriaXY/sumatoriaXX
b0 = my - b1*mx
return (b0,b1)
# Función para graficar
def plotRegression(x,y,b):
plt.scatter(x,y, color = 'g', marker = 'o', s = 30)
# Crear el vector de predicciones
yPred = b[0] + b[1]*x
# Gráfica
plt.plot(x, yPred, color = 'b')
# etiquetado
plt.xlabel('x - Independiente')
plt.ylabel('y - Dependiente')
plt.show()
# Código MAIN
def main():
# Observaciones
x = np.array([1,2,3,4,5])
y = np.array([2,3,5,6,5])
# Obtenemos b1 y b2
b = estimateb0b1(x,y)
print('Los valores b0 = {}, b1 = {} '.format(b[0],b[1]))
# Grafica de la línea de regresión
plotRegression(x, y, b)
if __name__ == '__main__':
main()