Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende R-cuadrado | Elegir el Mejor Modelo
Regresión Lineal con Python

R-cuadrado

Desliza para mostrar el menú

¿Qué es R-cuadrado?

Ya hemos cubierto MSE, RMSE y MAE. Estas métricas ayudan a comparar modelos, pero un solo valor es difícil de evaluar sin contexto. Puede que no sepas si el valor es “suficientemente bueno” para tu conjunto de datos.

R-cuadrado resuelve esto midiendo cuánto de la varianza del objetivo explica el modelo. Su valor varía de 0 a 1, lo que facilita su interpretación.

RSquaredFormulaSimple

El problema es que no podemos calcular la varianza explicada de inmediato. Pero sí podemos calcular la varianza no explicada, así que transformaremos la ecuación anterior a:

RSquaredFormula

Varianza total

La varianza total es simplemente la varianza del objetivo, y podemos calcular la varianza del objetivo utilizando la fórmula de varianza muestral de Estadística ( es la media del objetivo):

TotalVariation

En el ejemplo, las diferencias entre los valores reales y la media objetivo (líneas naranjas) se elevan al cuadrado y se suman, luego se dividen por m−1, lo que da una varianza total de 11.07.

TotalVariationGraph

Varianza no explicada

A continuación, se calcula la varianza que el modelo no explica. Si las predicciones fueran perfectas, todos los puntos estarían exactamente sobre la línea de regresión. Se utiliza la misma fórmula de varianza, pero se reemplaza por los valores predichos.

VarianzaNoExplicada

Ejemplo con visualización:

UnexplainedVariationGraph

Ahora conocemos todo lo necesario para calcular el R-cuadrado:

R2Example

Obtenemos un valor de R-cuadrado de 0.92, que es cercano a 1, por lo que tenemos un modelo excelente. También calcularemos el R-cuadrado para un modelo adicional.

R2Example2

El valor de R-cuadrado es más bajo ya que el modelo subajusta un poco los datos.

R-cuadrado en Python

La clase sm.OLS calcula el R-cuadrado automáticamente. Se puede encontrar en la tabla de summary() aquí.

Resumen

El R-cuadrado varía de 0 a 1, y un valor más alto es mejor (a menos que el modelo esté sobreajustado). La salida de summary() de sm.OLS incluye el valor de R-cuadrado.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 4. Capítulo 3
some-alt