So führen sie eine kubische regression in python durch
Die kubische Regression ist ein Regressionstyp, mit dem wir die Beziehung zwischen einer Prädiktorvariablen und einer Antwortvariablen quantifizieren können, wenn die Beziehung zwischen den Variablen nichtlinear ist.
In diesem Tutorial wird erklärt, wie man eine kubische Regression in Python durchführt.
Beispiel: kubische Regression in Python
Angenommen, wir haben den folgenden Pandas-DataFrame, der zwei Variablen (x und y) enthält:
import pandas as pd #createDataFrame df = pd. DataFrame ({' x ': [6, 9, 12, 16, 22, 28, 33, 40, 47, 51, 55, 60], ' y ': [14, 28, 50, 64, 67, 57, 55, 57, 68, 74, 88, 110]}) #view DataFrame print (df) xy 0 6 14 1 9 28 2 12 50 3 16 64 4 22 67 5 28 57 6 33 55 7 40 57 8 47 68 9 51 74 10 55 88 11 60 110
Wenn wir ein einfaches Streudiagramm dieser Daten erstellen, können wir erkennen, dass die Beziehung zwischen den beiden Variablen nichtlinear ist:
import matplotlib. pyplot as plt
#create scatterplot
plt. scatter (df. x , df. y )
Wenn der Wert von x zunimmt, steigt y bis zu einem bestimmten Punkt, nimmt dann ab und nimmt dann wieder zu.
Dieses Muster mit zwei „Kurven“ im Diagramm ist ein Hinweis auf eine kubische Beziehung zwischen den beiden Variablen.
Dies bedeutet, dass ein kubisches Regressionsmodell ein guter Kandidat für die Quantifizierung der Beziehung zwischen den beiden Variablen ist.
Um eine kubische Regression durchzuführen, können wir mithilfe der Funktion numpy.polyfit() ein polynomiales Regressionsmodell mit Grad 3 anpassen:
import numpy as np #fit cubic regression model model = np. poly1d (np. polyfit (df. x , df. y , 3)) #add fitted cubic regression line to scatterplot polyline = np. linspace (1, 60, 50) plt. scatter (df. x , df. y ) plt. plot (polyline, model(polyline)) #add axis labels plt. xlabel (' x ') plt. ylabel (' y ') #displayplot plt. show ()
Wir können die angepasste kubische Regressionsgleichung erhalten, indem wir die Modellkoeffizienten drucken:
print (model)
3 2
0.003302x - 0.3214x + 9.832x - 32.01
Die angepasste kubische Regressionsgleichung lautet:
y = 0,003302(x) 3 – 0,3214(x) 2 + 9,832x – 30,01
Mit dieser Gleichung können wir den erwarteten Wert von y basierend auf dem Wert von x berechnen.
Wenn x beispielsweise 30 ist, beträgt der erwartete Wert für y 64,844:
y = 0,003302(30) 3 – 0,3214(30) 2 + 9,832(30) – 30,01 = 64,844
Wir können auch eine kurze Funktion schreiben, um das R-Quadrat des Modells zu erhalten, das den Anteil der Varianz in der Antwortvariablen darstellt, der durch die Prädiktorvariablen erklärt werden kann.
#define function to calculate r-squared 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 #find r-squared of polynomial model with degree = 3 polyfit(df. x , df. y , 3) {'r_squared': 0.9632469890057967}
In diesem Beispiel beträgt das R-Quadrat des Modells 0,9632 .
Dies bedeutet, dass 96,32 % der Variation der Antwortvariablen durch die Prädiktorvariable erklärt werden können.
Da dieser Wert so hoch ist, zeigt er uns, dass das kubische Regressionsmodell die Beziehung zwischen den beiden Variablen gut quantifiziert.
Verwandt: Was ist ein guter R-Quadrat-Wert?
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in Python ausführen:
So führen Sie eine einfache lineare Regression in Python durch
So führen Sie eine quadratische Regression in Python durch
So führen Sie eine Polynomregression in Python durch