Ejercicio: Regresión lineal con Numpy
Los gráficos de dispersión son un medio práctico de visualizar datos, pero imagine que quiere superponer al gráfico de dispersión una línea de tendencia que muestre la tendencia de los datos a lo largo del tiempo. Una manera de calcular estas líneas de tendencia es la regresión lineal. En este ejercicio se usa NumPy para realizar una regresión lineal y Matplotlib para dibujar una línea de tendencia a partir de los datos.
Coloque el cursor en la celda vacía de la parte inferior del cuaderno. Cambie el tipo de celda a Markdown y escriba "Realizar regresión lineal" como texto.
Agregue una celda de tipo Código y pegue el siguiente código. Dedique un momento a leer los comentarios (las líneas que comienzan por los signos #) para comprender lo que hace el código.
# Creates a linear regression from the data points m,b = np.polyfit(yearsBase, meanBase, 1) # This is a simple y = mx + b line function def f(x): return m*x + b # This generates the same scatter plot as before, but adds a line plot using the function above plt.scatter(yearsBase, meanBase) plt.plot(yearsBase, f(yearsBase)) plt.title('scatter plot of mean temp difference vs year') plt.xlabel('years', fontsize=12) plt.ylabel('mean temp difference', fontsize=12) plt.show() # Prints text to the screen showing the computed values of m and b print(' y = {0} * x + {1}'.format(m, b)) plt.show()
Ahora ejecute la celda para mostrar un gráfico de dispersión con una línea de regresión.
Gráfico de dispersión con línea de regresión
En la línea de regresión puede ver que la diferencia entre las temperaturas medias de 30 años y las temperaturas medias de 5 años aumenta con el tiempo. La mayor parte del trabajo de cálculo necesario para generar la línea de regresión se ha realizado con la función polyfit
de NumPy, que ha calculado los valores de m
y b
en la ecuación y = mx + b.