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 …
Ein Likelihood-Quotienten-Test vergleicht die Anpassungsgüte zweier verschachtelter Regressionsmodelle .
Ein verschachteltes Modell ist einfach eines, das eine Teilmenge der Prädiktorvariablen im gesamten Regressionsmodell enthält.
Angenommen, wir haben das folgende Regressionsmodell mit vier Prädiktorvariablen:
Y = β 0 + β 1 x 1 + β 2 x 2 + β 3 x 3 + β 4 x 4 + ε
Ein Beispiel für ein verschachteltes Modell wäre das folgende Modell mit nur zwei der ursprünglichen Prädiktorvariablen:
Y = β 0 + β 1 x 1 + β 2 x 2 + ε
Um festzustellen, ob sich diese beiden Modelle signifikant unterscheiden, können wir einen Likelihood-Quotienten-Test durchführen, der die folgenden Null- und Alternativhypothesen verwendet:
H 0 : Das vollständige Modell und das verschachtelte Modell passen gleich gut zu den Daten. Daher sollten Sie das verschachtelte Modell verwenden.
H A : Das vollständige Modell passt deutlich besser zu den Daten als das verschachtelte Modell. Daher sollten Sie das vollständige Modell verwenden.
Wenn der p-Wert des Tests unter einem bestimmten Signifikanzniveau liegt (z. B. 0,05), können wir die Nullhypothese verwerfen und schlussfolgern, dass das vollständige Modell eine deutlich bessere Anpassung bietet.
Das folgende Schritt-für-Schritt-Beispiel zeigt, wie Sie einen Likelihood-Quotienten-Test in Python durchführen.
In diesem Beispiel zeigen wir, wie die folgenden zwei Regressionsmodelle in Python mithilfe von Daten aus dem mtcars- Datensatz angepasst werden:
Vollständiges Modell: mpg = β 0 + β 1 Disp + β 2 Vergaser + β 3 PS + β 4 Zyl
Reduziertes Modell: mpg = β 0 + β 1 disp + β 2 carb
Zuerst laden wir den Datensatz:
from sklearn.linear_model import LinearRegression
import statsmodels.api as sm
import pandas as pd
import scipy
#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)
Verwandte: So lesen Sie CSV-Dateien mit Pandas
Zuerst passen wir das vollständige Modell an und berechnen die Log-Wahrscheinlichkeit des Modells:
#Antwortvariable definieren
y1 = data['mpg']
#Prädiktorvariablen definieren
x1 = data[['disp', 'carb', 'hp', 'cyl']]
# Konstante zu Prädiktorvariablen hinzufügen
x1 = sm.add_constant(x1)
#fit-Regressionsmodell
full_model = sm.OLS(y1, x1).fit()
#Log-Wahrscheinlichkeit des Modells berechnen
full_ll = full_model.llf
print(full_ll)
-77.55789711787898
Dann passen wir das reduzierte Modell an und berechnen die Log-Wahrscheinlichkeit des Modells:
#Antwortvariable definieren
y2 = data['mpg']
#Prädiktorvariablen definieren
x2 = data[['disp', 'carb']]
# Konstante zu Prädiktorvariablen hinzufügen
x2 = sm.add_constant(x2)
#fit-Regressionsmodell
reduced_model = sm.OLS(y2, x2).fit()
#Log-Wahrscheinlichkeit des Modells berechnen
reduced_ll = reduced_model.llf
print(reduced_ll)
-78.60301334355185
Als Nächstes verwenden wir den folgenden Code, um den Log-Likelihood-Test durchzuführen:
#Berechnen Sie die Chi-Quadrat-Teststatistik für das Likelihood-Verhältnis
LR_statistic = -2*(reduced_ll-full_ll)
print(LR_statistic)
2.0902324513457415
# p-Wert der Teststatistik mit 2 Freiheitsgraden berechnen
p_val = scipy.stats.chi2.sf(LR_statistic, 2)
print(p_val)
0.35165094613502257
Aus der Ausgabe können wir ersehen, dass die Chi-Quadrat-Teststatistik 2,0902 und der entsprechende p- Wert 0,3517 ist.
Da dieser p-Wert nicht kleiner als 0,05 ist, werden wir die Nullhypothese nicht zurückweisen.
Das bedeutet, dass das vollständige Modell und das verschachtelte Modell gleich gut auf die Daten passen. Daher sollten wir das verschachtelte Modell verwenden, da die zusätzlichen Prädiktorvariablen im vollständigen Modell keine signifikante Verbesserung der Anpassung bieten.
Somit wäre unser endgültiges Modell:
mpg = β 0 + β 1 disp + β 2 carb
Hinweis : Wir haben bei der Berechnung des p-Werts 2 Freiheitsgrade verwendet, da dies die Differenz zwischen den gesamten Prädiktorvariablen darstellt, die zwischen den beiden Modellen verwendet wurden.
Die folgenden Tutorials bieten zusätzliche Informationen zur Verwendung von Regressionsmodellen in Python:
Eine vollständige Anleitung zur linearen Regression in Python
So führen Sie eine polynomiale Regression in Python durch
So führen Sie eine logistische Regression in Python durch
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 …