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 …
Multikollinearität in der Regressionsanalyse tritt auf, wenn zwei oder mehr erklärende Variablen stark miteinander korreliert sind, sodass sie keine eindeutigen oder unabhängigen Informationen im Regressionsmodell liefern. Wenn der Korrelationsgrad zwischen Variablen hoch genug ist, kann dies zu Problemen beim Anpassen und Interpretieren des Regressionsmodells führen.
Eine Möglichkeit zur Erkennung der Multikollinearität besteht in der Verwendung einer Metrik, die als Varianzinflationsfaktor (VIF) bezeichnet wird und die Korrelation und Stärke der Korrelation zwischen den erklärenden Variablen in einem Regressionsmodell misst.
In diesem Tutorial wird erklärt, wie VIF in Python berechnet wird.
In diesem Beispiel verwenden wir einen Datensatz, der die Attribute von 10 Basketballspielern beschreibt:
import numpy as np
import pandas as pd
# Datensatz erstellen
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})
# Datensatz anzeigen
df
rating points assists rebounds
0 90 25 5 11
1 85 20 7 8
2 82 14 7 10
3 88 16 8 6
4 94 27 5 6
5 90 20 7 9
6 76 12 6 6
7 75 15 9 10
8 87 14 9 10
9 86 19 5 7
Angenommen, wir möchten ein Modell mit mehreren linearen Regressionen anpassen, wobei die Bewertung als Antwortvariable und Punkte, Vorlagen und Rückpralle als erklärende Variablen verwendet werden.
Um das VIF für jede erklärende Variable im Modell zu berechnen, können wir die Funktion variance_inflation_factor() aus der Bibliothek statsmodels verwenden:
from patsy import dmatrices
from statsmodels.stats.outliers_influence import variance_inflation_factor
# Design Matrix für lineares Regressionsmodell unter Verwendung von 'rating' als Antwortvariable finden
y, X = dmatrices('rating ~ points+assists+rebounds', data=df, return_type='dataframe')
# VIF für jede erklärende Variable berechnen
vif = pd.DataFrame()
vif['VIF'] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
vif['variable'] = X.columns
# VIF für jede erklärende Variable anzeigen
vif
VIF variable
0 101.258171 Intercept
1 1.763977 points
2 1.959104 assists
3 1.175030 rebounds
Wir können die VIF-Werte für jede der erklärenden Variablen beobachten:
Hinweis: Ignorieren Sie das VIF für den „Intercept“ im Modell, da dieser Wert irrelevant ist.
Der Wert für VIF beginnt bei 1 und hat keine Obergrenze. Eine allgemeine Faustregel für die Interpretation von VIFs lautet wie folgt:
Da jeder der VIF-Werte für die erklärenden Variablen in unserem Regressionsmodell nahe bei 1 liegt, ist Multikollinearität in unserem Beispiel kein Problem.
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:
Die logistische Regression ist eine statistische Methode, die wir verwenden, um ein Regressionsmodell anzupassen, wenn die Antwortvariable binär ist.
Um zu beurteilen, wie gut ein logistisches Regressionsmodell zu einem Datensatz …