So berechnen sie die kreuzkorrelation in python


Kreuzkorrelation ist eine Möglichkeit, den Grad der Ähnlichkeit zwischen einer Zeitreihe und einer verzögerten Version einer anderen Zeitreihe zu messen.

Diese Art der Korrelation ist für die Berechnung nützlich, da sie uns sagen kann, ob Werte in einer Zeitreihe zukünftige Werte in einer anderen Zeitreihe vorhersagen. Mit anderen Worten: Es kann uns sagen, ob eine Zeitreihe ein Frühindikator für eine andere Zeitreihe ist.

Diese Art der Korrelation wird in vielen verschiedenen Bereichen verwendet, darunter:

Unternehmen: Marketingausgaben werden oft als Frühindikator für zukünftige Geschäftseinnahmen angesehen. Wenn ein Unternehmen beispielsweise in einem Quartal ungewöhnlich viel Geld für Marketing ausgibt, sollte der Gesamtumsatz x Quartale später hoch sein.

Wirtschaft: Der Verbrauchervertrauensindex (CCI) gilt als Frühindikator für das Bruttoinlandsprodukt (BIP) eines Landes. Wenn beispielsweise der CCI in einem bestimmten Monat hoch ist, ist das BIP wahrscheinlich x Monate später höher.

Das folgende Beispiel zeigt, wie die Kreuzkorrelation zwischen zwei Zeitreihen in Python berechnet wird.

Beispiel: So berechnen Sie die Kreuzkorrelation in Python

Nehmen wir an, wir haben die folgende Zeitreihe in Python, die die gesamten Marketingausgaben (in Tausend) für ein bestimmtes Unternehmen sowie den Gesamtumsatz (in Tausend) für 12 aufeinanderfolgende Monate zeigt:

 import numpy as np

#define data 
marketing = n.p. array ([3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8])
income = np. array ([21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30])

Wir können die Kreuzkorrelation für jede Verzögerung zwischen den beiden Zeitreihen mithilfe der Funktion ccf() aus dem Paket statsmodels wie folgt berechnen:

 import statsmodels. api as sm

#calculate cross correlation
sm. tsa . stattools . ccf (marketing, revenue, adjusted= False )

array([ 0.77109358, 0.46238654, 0.19352232, -0.06066296, -0.28159595,
       -0.44531104, -0.49159463, -0.35783655, -0.15697476, -0.03430078,
        0.01587722, 0.0070399 ])

So interpretieren Sie diese Ausgabe:

  • Die Kreuzkorrelation bei Verzögerung 0 beträgt 0,771 .
  • Die Kreuzkorrelation bei Verzögerung 1 beträgt 0,462 .
  • Die Kreuzkorrelation bei Verzögerung 2 beträgt 0,194 .
  • Die Kreuzkorrelation bei Verzögerung 3 beträgt -0,061 .

Und so weiter.

Beachten Sie, dass die Korrelation zwischen den beiden Zeitreihen mit zunehmender Anzahl von Verzögerungen immer weniger positiv wird. Dies zeigt uns, dass die Marketingausgaben in einem bestimmten Monat einen guten Rückschluss auf den Umsatz ein oder zwei Monate später haben, nicht jedoch auf den Umsatz nach zwei Monaten.

Dies macht intuitiv Sinn: Wir gehen davon aus, dass hohe Marketingausgaben in einem bestimmten Monat einen Umsatzanstieg in den nächsten zwei Monaten vorhersagen, aber nicht unbedingt einen Umsatzanstieg in mehreren Monaten.

Zusätzliche Ressourcen

So berechnen Sie die Autokorrelation in Python
So berechnen Sie die partielle Korrelation in Python
So berechnen Sie die Punkt-Biserial-Korrelation in Python

Einen Kommentar hinzufügen

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