Rollierende Korrelation in R berechnen - so gehts

Von Fabian
Kategorie: R
Lesezeit: 3 Minuten

Rollierende Korrelationen sind Korrelationen zwischen zwei Zeitreihen in einem rollierenden 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 rollierende Korrelationen in R berechnet werden.

So berechnen Sie Rollkorrelationen in R

Angenommen, wir haben das folgende Dataframe, der die Gesamtzahl der Produkte anzeigt, die für zwei verschiedene Produkte ( x und y ) innerhalb eines Zeitraums von 15 Monaten verkauft wurden:

#Dataframe erstellen
data <- data.frame(month=1:15,
                   x=c(13, 15, 16, 15, 17, 20, 22, 24, 25, 26, 23, 24, 23, 22, 20),
                   y=c(22, 24, 23, 27, 26, 26, 27, 30, 33, 32, 27, 25, 28, 26, 28))

#Die ersten sechs Zeilen anzeigen
head(data)

  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 R zu berechnen, können wir die Funktion rollapply() aus dem zoo-Paket verwenden.

Diese Funktion verwendet die folgende Syntax:

rollapply(data, width, FUN, by.column=TRUE)

wo:

  • data: Name des Dataframes
  • width: Ganzzahl, die die Fensterbreite für die rollierende Korrelation angibt
  • FUN: Die anzuwendende Funktion.
  • by.column: Gibt an, ob die Funktion für jede Spalte separat angewendet werden soll. Dies ist standardmäßig TRUE, aber um eine rollierende Korrelation zu berechnen, müssen wir diese als FALSE angeben.

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
rollapply(data, width=3, function(x) cor(x[,2],x[,3]), by.column=FALSE)

 [1]  0.6546537 -0.6933752 -0.2401922 -0.8029551  0.8029551  0.9607689
 [7]  0.9819805  0.6546537  0.8824975  0.8170572 -0.9449112 -0.3273268
[13] -0.1889822

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,6546537.
  • Die Umsatzkorrelation in den Monaten 2 bis 4 betrug -0,6933752.
  • Die Umsatzkorrelation in den Monaten 3 bis 5 betrug -0,2401922.

Usw.

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
rollapply(data, width=6, function(x) cor(x[,2],x[,3]), by.column=FALSE)

 [1] 0.5587415 0.4858553 0.6931033 0.7564756 0.8959291 0.9067715 0.7155418
 [8] 0.7173740 0.7684468 0.4541476

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,5587415.
  • Die Umsatzkorrelation in den Monaten 2 bis 7 betrug 0,4858553.
  • Die Umsatzkorrelation in den Monaten 3 bis 8 betrug 0,6931033.

Usw.

Anmerkungen

Beachten Sie Folgendes, wenn Sie die Funktion rollapply() verwenden:

  • Die Breite (d.h. das rollierende Fenster) sollte 3 oder mehr betragen, um Korrelationen zu berechnen.
  • In den obigen Formeln haben wir cor (x [, 2], x [3]) verwendet, da sich die beiden Spalten, zwischen denen wir Korrelationen berechnen wollten, an Position 2 und 3 befanden. Passen Sie diese Zahlen an, wenn sich die Spalten, an denen Sie interessiert sind, an verschiedenen Positionen befinden.

Verwandte Themen: Berechnen der Rolling-Korrelation in Excel

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: