Rollende Korrelationen sind Korrelationen zwischen zwei Zeitreihen in einem rollenden Fenster. Ein Vorteil dieser Art von Korrelation besteht darin, dass Sie die Korrelation zwischen zwei Zeitreihen über die Zeit visualisieren können.

In diesem Tutorial wird erklärt, wie Sie rollierende Korrelationen für einen Pandas DataFrame in Python berechnen und visualisieren.

So berechnen Sie rollende Korrelationen in Pandas

Angenommen, wir haben den folgenden Dataframe, in dem die Gesamtzahl der Produkte angezeigt wird, die für einen Zeitraum von 15 Monaten für zwei verschiedene Produkte (x und y) verkauft wurden:

import pandas as pd
import numpy as np

# Dataframe erstellen
df = pd.DataFrame({'month': np.arange(1, 16),
                   'x': [13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20],
                   'y': [22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28]})

# Die ersten sechs Zeilen anzeigen
df.head()

  month  x  y
1     1 13 22
2     2 15 24
3     3 16 23
4     4 15 27
5     5 17 26
6     6 20 26

Um eine rollierende Korrelation in Pandas zu berechnen, können wir die Funktion rolling.corr() verwenden.

Diese Funktion verwendet die folgende Syntax:

df[‘x’].rolling(width).corr(df[‘y’])

wo:

  • df: Name des Dataframes
  • width: Ganzzahl, die die Fensterbreite für die rollierende Korrelation angibt
  • x, y: Die beiden Spaltennamen zur Berechnung der rollierenden Korrelation zwischen

Verwenden Sie diese Funktion, um die rollierende 3-Monats-Korrelation im Umsatz zwischen Produkt x und Produkt y zu berechnen:

# Berechnen Sie die rollierende 3-Monats-Korrelation zwischen den Verkäufen für x und y
df['x'].rolling(3).corr(df['y'])

0          NaN
1          NaN
2     0.654654
3    -0.693375
4    -0.240192
5    -0.802955
6     0.802955
7     0.960769
8     0.981981
9     0.654654
10    0.882498
11    0.817057
12   -0.944911
13   -0.327327
14   -0.188982
dtype: float64

Diese Funktion gibt die Korrelation zwischen den beiden Produktverkäufen der letzten 3 Monate zurück. Beispielsweise:

  • Die Umsatzkorrelation in den Monaten 1 bis 3 betrug 0,654654.
  • Die Umsatzkorrelation in den Monaten 2 bis 4 betrug -0,693375.
  • Die Umsatzkorrelation in den Monaten 3 bis 5 betrug -0,240192.

Und so weiter.

Wir können diese Formel leicht anpassen, um die rollierende Korrelation für einen anderen Zeitraum zu berechnen. Der folgende Code zeigt beispielsweise, wie die rollierende 6-Monats-Korrelation im Umsatz zwischen den beiden Produkten berechnet wird:

# Berechnen Sie die rollierende 6-Monats-Korrelation zwischen den Verkäufen für x und y
df['x'].rolling(6).corr(df['y']) 
0          NaN
1          NaN
2          NaN
3          NaN
4          NaN
5     0.558742
6     0.485855
7     0.693103
8     0.756476
9     0.895929
10    0.906772
11    0.715542
12    0.717374
13    0.768447
14    0.454148
dtype: float64

Diese Funktion gibt die Korrelation zwischen den beiden Produktverkäufen der letzten 6 Monate zurück. Beispielsweise:

  • Die Umsatzkorrelation in den Monaten 1 bis 6 betrug 0,558742.
  • Die Umsatzkorrelation in den Monaten 2 bis 7 betrug 0,485855.
  • Die Umsatzkorrelation in den Monaten 3 bis 8 betrug 0,693103.

Und so weiter.

Anmerkungen

Hier einige Hinweise zu den in diesen Beispielen verwendeten Funktionen:

  • Die Breite (d.h. das rollende Fenster) sollte 3 oder mehr betragen, um Korrelationen zu berechnen.
  • Die vollständige Dokumentation zur Funktion rolling.corr() finden Sie hier.

Zusätzliche Ressourcen

Berechnen der Rollkorrelation in R
So berechnen Sie die Rolling-Korrelation in Excel

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: