Regresión Lineal con NumPy y Matplotlib en Google Colab

Clase 23 de 24Curso de Estadística Computacional con Python

Contenido del curso

Resumen

Aproximar datos experimentales a una función matemática es una de las habilidades más valiosas en ciencia y programación. La regresión lineal permite encontrar la función que mejor se ajusta a un conjunto de datos obtenidos mediante experimentos, y hacerlo en Python resulta sorprendentemente sencillo gracias a herramientas como NumPy y Google Colab.

¿Qué es la regresión lineal y por qué no solo aplica a líneas rectas?

La regresión lineal es una técnica que aproxima un conjunto de datos experimentales a una función que queremos investigar [0:06]. Aunque su nombre sugiere que trabaja exclusivamente con líneas, en realidad permite aproximar cualquier función polinomial [0:26]. Una línea recta es simplemente un caso especial dentro de la familia de polinomios. Si añadimos términos como x², x³ o x⁴, seguimos dentro de esa misma familia.

Esto significa que con la misma técnica podemos modelar comportamientos más complejos, no solo relaciones directamente proporcionales.

¿Cómo usar Google Colab para ejecutar código con NumPy?

Para trabajar con librerías avanzadas de Python sin necesidad de instalar entornos como Anaconda, se utiliza Google Colab [1:02]. Esta plataforma en la nube ofrece acceso directo a librerías científicas y funciona mediante notebooks, que son una implementación de Jupyter Notebooks.

¿Cómo preparar los datos experimentales?

Dentro de un notebook en Colab, el primer paso es importar NumPy con la convención estándar:

python import numpy as np

Luego se declaran los datos experimentales como vectores usando np.array [1:50]:

python x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8]) y = np.array([1, 2, 3, 5, 4, 6, 8, 7, 9])

  • x representa la variable independiente: los valores que controlamos en el experimento.
  • y representa la variable dependiente: los resultados medidos.

Por ejemplo, cuando medimos 0 obtuvimos 1, cuando medimos 3 obtuvimos 5, y así sucesivamente.

¿Cómo obtener la función lineal con polyfit?

La función np.polyfit calcula los coeficientes de la recta que mejor se ajusta [2:46]:

python coeficientes = np.polyfit(x, y, 1) m = coeficientes[0] b = coeficientes[1] y_estimado = m * x + b

El tercer parámetro (el número 1) indica que buscamos un polinomio de grado uno, es decir, una línea recta con la forma clásica y = mx + b [3:10]. El valor de m es la pendiente y b es la ordenada al origen. En este ejemplo, m resulta aproximadamente 0.96.

¿Cómo visualizar la regresión lineal con matplotlib?

Para graficar los resultados se utiliza matplotlib, una librería científica de Python similar a bokeh pero con un enfoque más tradicional [4:06]:

python import matplotlib.pyplot as plt

plt.plot(x, y_estimado) plt.scatter(x, y) plt.show()

  • plt.plot dibuja la línea de regresión calculada.
  • plt.scatter muestra los puntos originales del experimento.
  • plt.show despliega el gráfico completo.

Al ejecutar este código, se observa que la línea se aproxima a los datos pero no todos los puntos caen exactamente sobre ella [4:36]. Esto es completamente normal en resultados experimentales: siempre existe una pequeña diferencia entre lo que predicen las matemáticas y lo que arroja la medición real. Esa diferencia puede medirse directamente con las técnicas de regresión lineal.

Si solo ejecutáramos el scatter sin el plot, veríamos únicamente los datos crudos sin la línea de ajuste [5:03].

La combinación de NumPy para el cálculo y matplotlib para la visualización demuestra que generar regresiones lineales en Python requiere apenas unas pocas líneas de código. Te invitamos a compartir en los comentarios qué otros conjuntos de datos crees que podrían ajustarse a una función lineal y que eventualmente podrías probar o descartar mediante un experimento.