So führen Sie eine quadratische Regression in Python durch

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

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.

Beispiel: Quadratische Regression in Python

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)

Quadregpython

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()

Quadratische Regression in Python

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.

Zusätzliche Ressourcen

Durchführen einer Polynomregression in Python
Durchführen einer quadratischen Regression in R
So führen Sie eine quadratische Regression in Excel durch

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: