Como calcular aic de modelos de regressão em python


O Critério de Informação de Akaike (AIC) é uma métrica usada para comparar o ajuste de diferentes modelos de regressão.

É calculado da seguinte forma:

AIC = 2K – 2 ln (L)

Ouro:

  • K: O número de parâmetros do modelo. O valor padrão de K é 2, portanto, um modelo com apenas uma variável preditora terá um valor K de 2+1 = 3.
  • ln (L) : A probabilidade logarítmica do modelo. Isso nos diz a probabilidade do modelo, dados os dados.

O AIC foi projetado para encontrar o modelo que explica a maior variação nos dados, ao mesmo tempo que penaliza modelos que utilizam um número excessivo de parâmetros.

Depois de ajustar vários modelos de regressão, você pode comparar o valor AIC de cada modelo. O modelo com menor AIC proporciona o melhor ajuste.

Para calcular o AIC de modelos de regressão múltipla em Python, podemos usar a função statsmodels.regression.linear_model.OLS() , que possui uma propriedade chamada aic que nos informa o valor AIC para um determinado modelo.

O exemplo a seguir mostra como usar esta função para calcular e interpretar AIC para vários modelos de regressão em Python.

Exemplo: calcular e interpretar AIC em Python

Digamos que queremos ajustar dois modelos diferentes de regressão linear múltipla usando variáveis do conjunto de dados mtcars .

Primeiro, carregaremos este conjunto de dados:

 from sklearn. linear_model import LinearRegression
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)

#view head of data
data. head ()

        model mpg cyl disp hp drat wt qsec vs am gear carb
0 Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
1 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
2 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
3 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
4 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2

Aqui estão as variáveis preditoras que usaremos em cada modelo:

  • Variáveis preditoras no modelo 1: disp, hp, wt, qsec
  • Variáveis preditoras no modelo 2: disp, qsec

O código a seguir mostra como ajustar o primeiro modelo e calcular o AIC:

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'hp', 'wt', 'qsec']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit regression model
model = sm. OLS (y,x). fit ()

#view AIC of model
print (model. aic )

157.06960941462438

O AIC deste modelo é 157,07 .

A seguir, ajustaremos o segundo modelo e calcularemos o AIC:

 #define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'qsec']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit regression model
model = sm. OLS (y,x). fit ()

#view AIC of model
print (model. aic )

169.84184864154588

O AIC deste modelo é 169,84 .

Como o primeiro modelo tem um valor AIC mais baixo, é o modelo com melhor ajuste.

Uma vez identificado este modelo como o melhor, podemos prosseguir com o ajuste do modelo e analisar os resultados, incluindo o valor R-quadrado e os coeficientes beta, para determinar a relação exata entre o conjunto de variáveis preditivas e a variável resposta .

Recursos adicionais

Um guia completo para regressão linear em Python
Como calcular R-quadrado ajustado em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *