So berechnen sie die gleitende korrelation in r


Rollierende Korrelationen sind Korrelationen zwischen zwei Zeitreihen über ein gleitendes Fenster. Einer der Vorteile dieser Art der Korrelation besteht darin, dass Sie die Korrelation zwischen zwei Zeitreihen im Zeitverlauf visualisieren können.

In diesem Tutorial wird erläutert, wie rollierende Korrelationen in R berechnet werden.

So berechnen Sie rollierende Korrelationen in R

Angenommen, wir haben den folgenden Datenrahmen, der die Gesamtzahl der verkauften Produkte für zwei verschiedene Produkte ( x und y ) über einen Zeitraum von 15 Monaten anzeigt:

 #create data
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))

#view first six rows
head(data)

  month xy
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)

Gold:

  • data: Name des Datenrahmens
  • width: Ganzzahl, die die Breite des Fensters für die gleitende Korrelation angibt
  • SPASS: Die anzuwendende Funktion.
  • by.column: Gibt an, ob die Funktion auf jede Spalte separat angewendet werden soll. Dies ist standardmäßig WAHR, aber um eine rollierende Korrelation zu berechnen, müssen wir angeben, dass es FALSCH ist.

So verwenden Sie diese Funktion, um die rollierende 3-Monats-Korrelation der Verkäufe zwischen Produkt x und Produkt y zu berechnen:

 #calculate 3-month rolling correlation between sales for x and 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 Verkäufen zweier Produkte in den letzten 3 Monaten zurück. Zum Beispiel:

  • Die Korrelation der Verkäufe in den Monaten 1–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.

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 der Verkäufe zwischen den beiden Produkten berechnet wird:

 #calculate 6-month rolling correlation between sales for x and 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. Zum Beispiel:

  • Die Korrelation der Verkäufe in den Monaten 1–6 betrug 0,5587415 .
  • Die Umsatzkorrelation in den Monaten 2–7 betrug 0,4858553.
  • Die Umsatzkorrelation in den Monaten 3–8 betrug 0,6931033.

Und so weiter.

Kommentare

Beachten Sie die folgenden Punkte, wenn Sie die Funktion rollapply() verwenden:

  • Um Korrelationen berechnen zu können, muss die Breite (d. h. das Dropdown-Fenster) gleich oder größer als 3 sein.
  • 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 unterschiedlichen Positionen befinden.

Verwandte Themen: So berechnen Sie die rollierende Korrelation in Excel

Einen Kommentar hinzufügen

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