Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Modelos de regresión, Unidad 4 — Evaluación de modelos de regresión, 4.2 — Coeficiente de determinación ·

R²: Evaluando la calidad de tus modelos de regresión

Introducción

El coeficiente de determinación, o R² (pronunciado "R cuadrado"), es una medida clave para evaluar la calidad de un modelo de regresión. Representa la proporción de la varianza en los datos explicada por el modelo y se utiliza comúnmente para comparar diferentes modelos o para ver cómo bien ajustado es un modelo a los datos observados. Sin embargo, como con cualquier métrica, R² tiene sus limitaciones y trampas que debes tener en cuenta.

Explicación principal

El R² se define matemáticamente como:

\[ \text{R}^2 = 1 - \frac{\text{MSE}}{\text{Var(y)}} \]

Donde:

  • MSE (Mean Squared Error) es la media de los cuadrados de las diferencias entre los valores predichos y observados.
  • Var(y) es la varianza de los datos observados.

En términos más simples, R² mide cuánto del total de variabilidad en una variable dependiente (y) se explica por el modelo. Un valor de 1 implica que el modelo predice sin errores, mientras que un valor cercano a 0 indica que el modelo no explica la variabilidad de los datos.

Ejemplo: Supongamos que estás utilizando un modelo de regresión lineal simple para predecir el precio de una casa basado en su área. Si tu R² es 0.85, esto significa que aproximadamente el 85% de la variabilidad en los precios de las casas se puede atribuir al área.

from sklearn.metrics import r2_score

# Ejemplo de datos
y_true = [1, -1, 1, 1]
y_pred = [1.3, -0.6, 0.5, 2.4]

# Calcular R²
r2 = r2_score(y_true, y_pred)
print(f"R²: {r2}")

Errores típicos / trampas

  1. R² siempre mejora al agregar variables: Incluir más características en el modelo puede aumentar el R², incluso si estas características no tienen una relación significativa con la variable dependiente. Esto es especialmente perjudicial cuando las nuevas variables son irrelevantes o incluso ruidosas.
  1. R² no detecta overfitting: El R² no tiene ninguna capacidad para predecir el overfitting. Un modelo con alto R² en los datos de entrenamiento puede tener un R² bajo en los datos de prueba, lo que indica overfitting.
  1. R² no se ajusta a modelos no lineales: Si tu relación entre las variables es no lineal y usas un modelo lineal, el R² puede ser engañoso. En tales casos, otros métodos como la regresión polinómica o los árboles de regresión pueden proporcionar mejores resultados.

Checklist accionable

Asegúrate de seguir estos pasos para maximizar la utilidad del coeficiente de determinación en tu análisis:

  1. Evalúa el R² en datos de prueba: Asegúrate de que el R² se calcule en un conjunto de datos que no ha sido utilizado durante el entrenamiento.
  2. Construye modelos alternativos: Compara diferentes modelos y su R² para seleccionar el mejor ajuste.
  3. Revisa la interpretación del R²: No confundas un alto R² con una predicción perfecta. Considera también otros factores como el error en los datos observados.
  4. Verifica el overfitting: Si tu R² es muy alto en los datos de entrenamiento pero baja en los de prueba, esto puede indicar overfitting.
  5. Analiza la varianza en las predicciones: Examina cómo se distribuyen tus errores y si existen patrones que puedan mejorar el modelo.

Cierre: Siguientes pasos

Ahora que has aprendido sobre R², aquí están los pasos siguientes para profundizar en tu entendimiento de modelos de regresión:

  • Explorar modelos no lineales: Si encuentras que la relación entre tus variables es no lineal, considera usar modelos como la regresión polinómica o árboles de regresión.
  • Implementar regularización: Para prevenir overfitting, experimenta con técnicas de regularización como Ridge y Lasso.
  • Aprender más sobre series temporales: Si tus datos están relacionados en el tiempo, el análisis de series temporales puede proporcionarte resultados más precisos.

Siguiendo estos pasos, podrás mejorar la calidad de tus modelos de regresión y obtener mejores predicciones.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).