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()
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()
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()
Weitere Python-Tutorials finden Sie auf dieser Seite .