So berechnen sie die autokorrelation in python


Die Autokorrelation misst den Grad der Ähnlichkeit zwischen einer Zeitreihe und einer verzögerten Version ihrer selbst über aufeinanderfolgende Zeitintervalle.

Sie wird manchmal auch als „serielle Korrelation“ oder „verzögerte Korrelation“ bezeichnet, da sie die Beziehung zwischen den aktuellen Werten einer Variablen und ihren historischen Werten misst.

Wenn die Autokorrelation in einer Zeitreihe hoch ist, ist es einfach, zukünftige Werte vorherzusagen, indem einfach auf vergangene Werte verwiesen wird.

So berechnen Sie die Autokorrelation in Python

Angenommen, wir haben die folgende Zeitreihe in Python, die den Wert einer bestimmten Variablen für 15 verschiedene Zeiträume zeigt:

 #define data
x = [22, 24, 25, 25, 28, 29, 34, 37, 40, 44, 51, 48, 47, 50, 51]

Wir können die Autokorrelation für jede Verzögerung in der Zeitreihe mithilfe der Funktion acf() aus der Statsmodels-Bibliothek berechnen:

 import statsmodels.api as sm

#calculate autocorrelations
sm.tsa.acf(x)

array([ 1. , 0.83174224, 0.65632458, 0.49105012, 0.27863962,
        0.03102625, -0.16527446, -0.30369928, -0.40095465, -0.45823389,
       -0.45047733])

Das Ergebnis lässt sich wie folgt interpretieren:

  • Die Autokorrelation bei Verzögerung 0 ist 1 .
  • Die Autokorrelation bei Verzögerung 1 beträgt 0,8317 .
  • Die Autokorrelation bei Verzögerung 2 beträgt 0,6563 .
  • Die Autokorrelation bei Verzögerung 3 beträgt 0,4910 .

Und so weiter.

Mit dem Argument nlags können wir auch die Anzahl der zu verwendenden Verzögerungen angeben:

 sm.tsa.acf(x, nlags= 5 )

array([1.0, 0.83174224, 0.65632458, 0.49105012, 0.27863962, 0.03102625])

So zeichnen Sie eine Autokorrelationsfunktion in Python auf

Wir können die Autokorrelationsfunktion für eine Zeitreihe in Python mit der Funktion tsaplots.plot_acf() aus der statsmodels-Bibliothek zeichnen:

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags=10)
plt.show() 

Autokorrelationsfunktion in Python

Die x-Achse zeigt die Anzahl der Verzögerungen und die y-Achse zeigt die Autokorrelation bei dieser Anzahl von Verzögerungen an. Standardmäßig beginnt die Darstellung bei Lag = 0 und die Autokorrelation ist bei Lag = 0 immer 1 .

Wir können die ersten Verzögerungen auch vergrößern, indem wir mit dem Argument „Lags“ die Verwendung weniger Verzögerungen auswählen:

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags= 5 )
plt.show() 

Zeichnen einer Autokorrelationsfunktion in Python

Sie können auch den Titel und die Farbe der im Plot verwendeten Kreise mit den Argumenten title und color ändern:

 from statsmodels.graphics import tsaplots
import matplotlib.pyplot as plt

#plot autocorrelation function
fig = tsaplots.plot_acf(x, lags= 5, color='g', title='Autocorrelation function' )
plt.show() 

Autokorrelationsfunktion in Python mit benutzerdefiniertem Titel

Weitere Python-Tutorials finden Sie auf dieser Seite .

Einen Kommentar hinzufügen

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