Bayessches Informationskriterium (BIC) in Python - so geht's

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

Das Bayes'sche Informationskriterium, oft abgekürzt BIC (engl. Bayes information criterium), ist eine Metrik, die verwendet wird, um die Anpassungsgüte verschiedener Regressionsmodelle zu vergleichen.

In der Praxis passen wir mehrere Regressionsmodelle an denselben Datensatz an und wählen das Modell mit dem niedrigsten BIC-Wert als das Modell, das am besten zu den Daten passt.

Wir verwenden die folgende Formel, um den BIC zu berechnen:

BIC: (RSS+log(n)dσ̂ 2 ) / n

wo:

  • d: Die Anzahl der Prädiktoren
  • n: Gesamtbeobachtungen
  • σ̂: Schätzung der Varianz des Fehlers, der jeder Reaktionsmessung in einem Regressionsmodell zugeordnet ist
  • RSS: Residuensumme der Quadrate des Regressionsmodells
  • TSS: Summe der Quadrate des Regressionsmodells

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

Das folgende Beispiel zeigt, wie Sie diese Funktion verwenden, um den BIC für verschiedene Regressionsmodelle in Python zu berechnen und zu interpretieren.

Beispiel: BIC von Regressionsmodellen in Python berechnen

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
Daten = pd. read_csv (URL)

#Datenkopf anzeigen
Daten. Kopf ()

        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

Als Nächstes passen wir die folgenden zwei Regressionsmodelle an:

  • Modell 1: mpg = β 0 + β 1 (disp) + β 2 (qsec)
  • Modell 2: mpg = β 0 + β 1 (disp) + β 2 (wt)

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

#Antwortvariable definieren
y = data['mpg']

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

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

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

#BIC des Modells anzeigen
print(model.bic)

174.23905634994506

Der BIC dieses Modells stellt sich als 174.239 heraus.

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

#Antwortvariable definieren
y = data['mpg']

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

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

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

#BIC des Modells anzeigen
print(model.bic)

166.56499196301334

Der BIC dieses Modells stellt sich als 166.565 heraus.

Da das zweite Modell einen niedrigeren BIC-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

Zwei weitere Metriken, die häufig verwendet werden, um die Anpassung von Regressionsmodellen zu vergleichen, sind AIC und adjustiertes R-Quadrat.

In den folgenden Tutorials wird erläutert, wie Sie jede dieser Metriken für Regressionsmodelle in Python berechnen:

So berechnen Sie AIC von Regressionsmodellen 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: