Jak obliczyć aic modeli regresji w pythonie


Kryterium informacyjne Akaike (AIC) to metryka używana do porównywania dopasowania różnych modeli regresji.

Oblicza się go w następujący sposób:

AIC = 2K – 2 ln (L)

Złoto:

  • K: Liczba parametrów modelu. Domyślna wartość K wynosi 2, zatem model z tylko jedną zmienną predykcyjną będzie miał wartość K wynoszącą 2+1 = 3.
  • ln (L) : Logarytm wiarygodności modelu. To mówi nam o prawdopodobieństwie modelu na podstawie danych.

Celem AIC jest znalezienie modelu wyjaśniającego największe zróżnicowanie danych, przy jednoczesnym karaniu modeli wykorzystujących nadmierną liczbę parametrów.

Po dopasowaniu wielu modeli regresji można porównać wartość AIC każdego modelu. Model z najniższym AIC zapewnia najlepsze dopasowanie.

Aby obliczyć AIC modeli regresji wielokrotnej w Pythonie, możemy użyć funkcji statsmodels.regression.linear_model.OLS() , która ma właściwość zwaną aic , która informuje nas o wartości AIC dla danego modelu.

Poniższy przykład pokazuje, jak używać tej funkcji do obliczania i interpretowania AIC dla różnych modeli regresji w Pythonie.

Przykład: oblicz i zinterpretuj AIC w Pythonie

Załóżmy, że chcemy dopasować dwa różne modele regresji liniowej wielokrotnej, używając zmiennych ze zbioru danych mtcars .

Najpierw załadujemy ten zestaw danych:

 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

Oto zmienne predykcyjne, których będziemy używać w każdym modelu:

  • Zmienne predykcyjne w modelu 1: disp, hp, wt, qsec
  • Zmienne predykcyjne w modelu 2: disp, qsec

Poniższy kod pokazuje, jak dopasować pierwszy model i obliczyć 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

AIC tego modelu okazuje się wynosić 157,07 .

Następnie dopasujemy drugi model i obliczymy 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

AIC tego modelu okazuje się wynosić 169,84 .

Ponieważ pierwszy model ma niższą wartość AIC, jest to model najlepiej dopasowany.

Gdy uznamy ten model za najlepszy, możemy przystąpić do jego dopasowywania i przeanalizować wyniki, w tym wartość R-kwadrat i współczynniki beta, aby określić dokładny związek pomiędzy zestawem zmiennych predykcyjnych azmienną odpowiedzi .

Dodatkowe zasoby

Kompletny przewodnik po regresji liniowej w Pythonie
Jak obliczyć skorygowany R-kwadrat w Pythonie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *