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 …
Die quadratische Regression ist eine Art von Regression, mit der wir die Beziehung zwischen einer Prädiktorvariablen und einer Antwortvariablen quantifizieren können, wenn die wahren Beziehungen quadratisch sind, was in einem Diagramm wie ein „U“ oder ein auf dem Kopf stehendes „U“ aussehen kann.
Das heißt, wenn die Prädiktorvariable zunimmt, nimmt auch die Antwortvariable tendenziell zu, aber nach einem bestimmten Punkt beginnt die Antwortvariable abzunehmen, wenn die Prädiktorvariable weiter zunimmt.
In diesem Tutorial wird erklärt, wie Sie eine quadratische Regression in Python durchführen.
Angenommen, wir haben Daten zur Anzahl der pro Woche geleisteten Arbeitsstunden und zum gemeldeten Glücksgrad (auf einer Skala von 0 bis 100) für 16 verschiedene Personen:
import numpy as np
import scipy.stats as stats
# Legende hinzufügen
hours = [6, 9, 12, 12, 15, 21, 24, 24, 27, 30, 36, 39, 45, 48, 57, 60]
happ = [12, 18, 30, 42, 48, 78, 90, 96, 96, 90, 84, 78, 66, 54, 36, 24]
Wenn wir ein einfaches Streudiagramm dieser Daten erstellen, können wir sehen, dass die Beziehung zwischen den beiden Variablen U-förmig ist:
import matplotlib.pyplot as plt
# Streudiagramm erstellen
plt.scatter(hours, happ)
Mit zunehmender Arbeitszeit steigt auch das Glück, aber sobald die geleisteten Arbeitsstunden etwa 35 Stunden pro Woche vergehen, nimmt das Glück ab.
Aufgrund dieser „U“-Form bedeutet dies, dass die quadratische Regression wahrscheinlich ein guter Kandidat ist, um die Beziehung zwischen den beiden Variablen zu quantifizieren.
Um tatsächlich eine quadratische Regression durchzuführen, können wir mit der Funktion numpy.polyfit() ein polynomielles Regressionsmodell mit einem Grad von 2 anpassen:
import numpy as np
# Polynomanpassung mit Grad = 2
model = np.poly1d(np.polyfit(hours, happ, 2))
# An das Streudiagramm angepasste Polynomlinie hinzufügen
polyline = np.linspace(1, 60, 50)
plt.scatter(hours, happ)
plt.plot(polyline, model(polyline))
plt.show()
Wir können die angepasste Polynomregressionsgleichung erhalten, indem wir die Modellkoeffizienten ausgeben:
print(model)
-0.107x2 + 7.173x - 30.25
Die angepasste quadratische Regressionsgleichung lautet:
Glück = -0,107 (Stunden) 2 + 7,173 (Stunden) - 30,25
Wir können diese Gleichung verwenden, um das erwartete Glücksniveau eines Individuums basierend auf seinen geleisteten Arbeitsstunden zu berechnen. Das erwartete Glücksniveau von jemandem, der 30 Stunden pro Woche arbeitet, ist beispielsweise:
Glück = -0,107 (30) 2 + 7,173 (30) - 30,25 = 88,64.
Wir können auch eine kurze Funktion schreiben, um das R-Quadrat des Modells zu erhalten, das der Anteil der Varianz in der Antwortvariablen ist, der durch die Prädiktorvariablen erklärt werden kann.
#Funktion zur Berechnung des R-Quadrats definieren
def polyfit(x, y, degree):
results = {}
coeffs = np.polyfit(x, y, degree)
p = np.poly1d(coeffs)
#calculate r-squared
yhat = p(x)
ybar = np.sum(y)/len(y)
ssreg = np.sum((yhat-ybar)**2)
sstot = np.sum((y - ybar)**2)
results['r_squared'] = ssreg / sstot
return results
# R-Quadrat des Polynommodells mit Grad = 3 finden
polyfit(hours, happ, 2)
{'r_squared': 0.9092114182131691}
In diesem Beispiel beträgt das R-Quadrat des Modells 0,9092. Dies bedeutet, dass 90,92% der Variation der gemeldeten Glücksniveaus durch die Prädiktorvariablen erklärt werden können.
Durchführen einer Polynomregression in Python
Durchführen einer quadratischen Regression in R
So führen Sie eine quadratische Regression in Excel 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 …