So berechnen Sie AIC von Regressionsmodellen in Python

Von Fabian
Kategorie: Python
Tags: Regression
Lesezeit: 3 Minuten

Das Akaike-Informationskriterium (AIC) ist eine Metrik, die verwendet wird, um die Anpassung verschiedener Regressionsmodelle zu vergleichen.

Es wird berechnet als:

AIC = 2K – 2ln (L)

wo:

  • K: Die Anzahl der Modellparameter. Der Standardwert von K ist 2, sodass ein Modell mit nur einer Prädiktorvariablen einen K-Wert von 2+1 = 3 hat.
  • ln (L) : Die Log-Wahrscheinlichkeit des Modells. Dies sagt uns, wie wahrscheinlich das Modell angesichts der Daten ist.

Die AIC ist darauf ausgelegt, das Modell zu finden, das die meisten Variationen in den Daten erklärt, während Modelle, die eine übermäßige Anzahl von Parametern verwenden, bestraft werden.

Nachdem Sie mehrere Regressionsmodelle angepasst haben, können Sie den AIC-Wert jedes Modells vergleichen. Das Modell mit dem niedrigsten AIC bietet die beste Passform.

Um den AIC mehrerer Regressionsmodelle in Python zu berechnen, können wir die Funktion statsmodels.regression.linear_model.OLS() verwenden, die eine Eigenschaft namens aic hat, die uns den AIC-Wert für ein bestimmtes Modell mitteilt.

Das folgende Beispiel zeigt, wie Sie mit dieser Funktion den AIC für verschiedene Regressionsmodelle in Python berechnen und interpretieren.

Beispiel: Berechnen und interpretieren Sie AIC in Python

Angenommen, wir möchten zwei verschiedene multiple lineare Regressionsmodelle mit Variablen aus dem mtcars- Datensatz anpassen.

Zuerst laden wir diesen Datensatz:

from sklearn.linear_model import LinearRegression
import statsmodels.api as sm
import pandas as pd

#URL definieren, wo sich der Datensatz befindet
url = "https://raw.githubusercontent.com/Statology/Python-Guides/main/mtcars.csv"

#Daten einlesen
data = pd.read_csv(url)

#Datenkopf anzeigen
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

Hier sind die Prädiktorvariablen, die wir in jedem Modell verwenden werden:

  • Prädiktorvariablen in Modell 1: disp, hp, wt, qsec
  • Prädiktorvariablen in Modell 2: disp, qsec

Der folgende Code zeigt, wie das erste Modell angepasst und der AIC berechnet wird:

#Antwortvariable definieren
y = data['mpg']

#Prädiktorvariablen definieren
x = data[['disp', 'hp', 'wt', 'qsec']]

# Konstante zu Prädiktorvariablen hinzufügen
x = sm.add_constant(x)

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

#AIC des Modells anzeigen
print(model.aic)

157.06960941462438

Der AIC dieses Modells stellt sich als 157,07 heraus.

Als nächstes passen wir das zweite Modell an und berechnen den AIC:

#Antwortvariable definieren
y = data['mpg']

#Prädiktorvariablen definieren
x = data[['disp', 'qsec']]

# Konstante zu Prädiktorvariablen hinzufügen
x = sm.add_constant(x)

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

#AIC des Modells anzeigen
print(model.aic)

169.84184864154588

Der AIC dieses Modells beträgt 169,84.

Da das erste Modell einen niedrigeren AIC-Wert hat, ist es das besser passende Modell.

Sobald wir dieses Modell als das beste identifiziert haben, können wir mit der Anpassung des Modells fortfahren und die Ergebnisse einschließlich des R-Quadrat-Werts und der Beta-Koeffizienten analysieren, um die genaue Beziehung zwischen dem Satz von Prädiktorvariablen und der Antwortvariablen zu bestimmen.

Zusätzliche Ressourcen

Eine vollständige Anleitung zur linearen Regression in Python
So berechnen Sie das angepasste R-Quadrat in Python

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: