¿Cómo calcular el R-cuadrado ajustado en Python?

R cuadrado , a menudo escrito R 2 , es la proporción de la varianza en la variable de respuesta que puede explicarse por las variables predictoras en un modelo de regresión lineal .

El valor de R-cuadrado puede oscilar entre 0 y 1. Un valor de 0 indica que la variable de respuesta no puede ser explicada por la variable de predicción en absoluto, mientras que un valor de 1 indica que la variable de respuesta puede ser explicada perfectamente sin errores por el predictor.

El R-cuadrado ajustado es una versión modificada de R-cuadrado que se ajusta al número de predictores en un modelo de regresión. Se calcula como:

R 2 ajustado = 1 – [(1-R 2 ) * (n-1) / (nk-1)]

dónde:

  • R 2 : El R 2 del modelo
  • n : el número de observaciones
  • k : el número de variables predictoras

Dado que R 2 siempre aumenta a medida que agrega más predictores a un modelo, el R 2 ajustado puede servir como una métrica que le indica qué tan útil es un modelo, ajustado por el número de predictores en un modelo .

Este tutorial muestra dos ejemplos de cómo calcular R 2 ajustado para un modelo de regresión en Python.

Relacionado: ¿Qué es un buen valor R cuadrado?

Calcular R cuadrado ajustado con sklearn en python

El siguiente código muestra cómo ajustar un modelo de regresión lineal múltiple y calcular el R-cuadrado ajustado del modelo usando sklearn:

https://raw.githubusercontent.com/dereckamesquita/Introduccion-a-R/main/mtcars.csv

from sklearn.linear_model import LinearRegression
import pandas as pd

# Creamos la variable URL, la cual contiene la dirección de un data set
url = "https://raw.githubusercontent.com/dereckamesquita/Introduccion-a-R/main/mtcars.csv"

# Leémos la data
data = pd.read_csv(url)

# Creamos el modelo de regresión lineal
model = LinearRegression()
X, y = data[["mpg", "wt", "drat", "qsec"]], data.hp
model.fit(X, y)

# Calculamos manualmente el R Cuadrado ajustado
1 - (1-model.score(X, y))*(len(y)-1)/(len(y)-X.shape[1]-1)

0.7787005290062521

La R-cuadrada ajustada del modelo resulta ser 0,7787 .

Ejemplo 2: Calcular R-Cuadrado Ajustado con Statsmodels

El siguiente código muestra cómo ajustar un modelo de regresión lineal múltiple y calcular el R-cuadrado ajustado del modelo usando statsmodels:

import statsmodels.api as sm
import pandas as pd

# Creamos la variable URL, la cual contiene la dirección de un data set
url = "https://raw.githubusercontent.com/dereckamesquita/Introduccion-a-R/main/mtcars.csv"

# Leémos la data
data = pd.read_csv(url)

# Corremos el modelo de regresión lineal
X, y = data[["mpg", "wt", "drat", "qsec"]], data.hp
X = sm.add_constant(X)
model = sm.OLS(y, X).fit()

# Imprimimos el R cuadrado ajustado
print(model.rsquared_adj)

0.7787005290062521

La R-cuadrada ajustada del modelo resulta ser 0,7787 , que coincide con el resultado del ejemplo anterior.

Recursos adicionales

Cómo realizar una regresión lineal simple en Python
Cómo realizar una regresión lineal múltiple en Python

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario