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

kubische Regression in Python

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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert