Como calcular r-quadrado ajustado em python
R-quadrado , muitas vezes escrito R2 , é a proporção da variância na variável de resposta que pode ser explicada pelas variáveis preditoras em um modelo de regressão linear .
O valor de R ao quadrado pode variar de 0 a 1. Um valor de 0 indica que a variável de resposta não pode ser explicada pela variável preditora, enquanto um valor de 1 indica que a variável de resposta pode ser explicada pela variável preditora. perfeitamente explicado sem erro pelo preditor. variáveis.
R-quadrado ajustado é uma versão modificada do R-quadrado que ajusta o número de preditores em um modelo de regressão. É calculado da seguinte forma:
R 2 ajustado = 1 – [(1-R 2 )*(n-1)/(nk-1)]
Ouro:
- R 2 : O R 2 do modelo
- n : O número de observações
- k : O número de variáveis preditoras
Como o R2 sempre aumenta à medida que você adiciona preditores a um modelo, o R2 ajustado pode servir como uma métrica que informa o quão útil é um modelo, ajustado com base no número de preditores em um modelo .
Este tutorial mostra dois exemplos de cálculo de R2 ajustado para um modelo de regressão em Python.
Relacionado: O que é um bom valor de R ao quadrado?
Exemplo 1: calcular R-quadrado ajustado com sklearn
O código a seguir mostra como ajustar um modelo de regressão linear múltipla e calcular o R-quadrado ajustado do modelo usando sklearn:
from sklearn. linear_model import LinearRegression import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv" #read in data data = pd. read_csv (url) #fit regression model model = LinearRegression () x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp model. fit (x,y) #display adjusted R-squared 1 - (1-model. score (X, y))*( len (y)-1)/( len (y)-X. shape [1]-1) 0.7787005290062521
O R-quadrado ajustado do modelo é 0,7787 .
Exemplo 2: Calcular R-quadrado ajustado com modelos estatísticos
O código a seguir mostra como ajustar um modelo de regressão linear múltipla e calcular o R-quadrado ajustado do modelo usando modelos estatísticos:
import statsmodels. api as sm import pandas as pd #define URL where dataset is located url = "https://raw.githubusercontent.com/Statorials/Python-Guides/main/mtcars.csv" #read in data data = pd. read_csv (url) #fit regression model x, y = data[["mpg", "wt", "drat", "qsec"]], data.hp X = sm. add_constant (X) model = sm. OLS (y,x). fit () #display adjusted R-squared print ( model.rsquared_adj ) 0.7787005290062521
O R-quadrado ajustado do modelo acaba sendo 0,7787 , o que corresponde ao resultado do exemplo anterior.
Recursos adicionais
Como realizar regressão linear simples em Python
Como realizar regressão linear múltipla em Python
Como calcular AIC de modelos de regressão em Python