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

Actualizado por ultima vez el 24 de noviembre de 2022, por Dereck Amesquita.

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/

I’m a Bachelor of Economics gratuaded from the National University of San Agustin. I have experience in Python, R and other languages with aplications in Finance or Econometrics, I also have knowledge of statistics and econometrics. If you need help on some issues you can write to me.

Deja un comentario

La regresión logística es un tipo de regresión que podemos usar cuando la variable de respuesta es binaria. Una forma…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!