Datos anteriores
import numpy as np
enlace = "https://gist.githubusercontent.com/ahcamachod/9be09de793dc3bf1e6c3d98eb4e5b1ef/raw/21b85572693200040e11284ef6dcfc3457ec8e11/citrus.csv"
carga_datos = np.loadtxt(enlace,delimiter=",",usecols= np.arange(1,6,1),skiprows=1)
carga_datos
diametro_naranjas = carga_datos[:5000,0] # fila 0 a 4999(+1), columna 0
diametro_toronjas = carga_datos[5000:,0] # fila 5000 a final, columna 0
peso_naranjas = carga_datos[:5000,1] # fila 0 a 4999(+1), columna 1
peso_toronjas = carga_datos[5000:,1] # fila 5000 a final, columna 1
Naranjas
nn = np.size(diametro_naranjas)
xn = diametro_naranjas
yn = peso_naranjas
an = (nn*np.sum(xn*yn)-np.sum(xn)*np.sum(yn))/(nn*np.sum(xn**2)-np.sum(xn)**2)
bn = (np.sum(yn)-an*np.sum(xn))/nn
print(f"El coeficiente angular (pendiente) es: {an}\nEl coeficiente lineal (intersección) es: {bn} ")
yn = an*xn+bn
np.linalg.norm(peso_naranjas - yn)
import matplotlib.pyplot as plt
plt.title('Naranjas')
plt.xlabel('Diámetro')
plt.ylabel('Peso')
plt.plot(diametro_naranjas,peso_naranjas,label="Datos reales (Peso vs Diámetro)",color="#1f77b4") # Línea de datos reales
plt.plot(xn,yn, label="Datos estimados (Regresión lineal)",color="red")
plt.grid()
plt.legend()
Toronjas
nt = np.size(diametro_toronjas)
xt = diametro_toronjas
yt = peso_toronjas
at = (nt*np.sum(xt*yt)-np.sum(xt)*np.sum(yt))/(nt*np.sum(xt**2)-np.sum(xt)**2)
bt = (np.sum(yt)-at*np.sum(xt))/nt
print(f"El coeficiente angular (pendiente) es: {at}\nEl coeficiente lineal (intersección) es: {bt} ")
yt = at*xt+bt
np.linalg.norm(peso_toronjas - yt)
import matplotlib.pyplot as plt
plt.title('Toronjas')
plt.xlabel('Diámetro')
plt.ylabel('Peso')
plt.plot(diametro_toronjas,peso_toronjas,label="Datos reales (Peso vs Diámetro)",color="green") # Línea de datos reales
plt.plot(xt,yt, label="Datos estimados (Regresión lineal)",color="red")
plt.grid()
plt.legend()
Naranjas y Toronjas
x_total = np.concatenate((diametro_naranjas, diametro_toronjas))
y_total = np.concatenate((peso_naranjas, peso_toronjas))
n_total = np.size(x_total)
a_total = (n_total*np.sum(x_total*y_total) - np.sum(x_total)*np.sum(y_total)) / (n_total*np.sum(x_total**2) - np.sum(x_total)**2)
b_total = (np.sum(y_total) - a_total*np.sum(x_total)) / n_total
y_estimada_total = a_total * x_total + b_total
import matplotlib.pyplot as plt
plt.title("Naranjas y Toronjas")
plt.xlabel("Diámetro")
plt.ylabel("Peso")
plt.plot(diametro_naranjas, peso_naranjas, label="Naranjas", color="#1f77b4")
plt.plot(diametro_toronjas, peso_toronjas, label="Toronjas", color="green")
plt.plot(x_total, y_estimada_total, label="Regresión lineal conjunta", color="red")
plt.legend()
plt.grid()
plt.show()