How to perform Rolling Correlation in R

Rolling Correlation in R, Correlations between two-time series on a rolling window are known as rolling correlations.

Correlations in time series are extremely valuable since they may be used to model and forecast if a relationship exists. But there’s a catch: a correlation isn’t static! It evolves over time.

The rolling correlation is one of the most important calculations in time series analysis.

Rank Order analysis in R » Optimal order & Probability

This sort of correlation has the advantage of allowing you to visualize the correlation between two-time series across time.

This article will show you how to use R to calculate rolling correlations.

Rolling Correlation in R

In R, how do you calculate rolling correlations?

Consider the following data frame, which shows the total profit for two separate products (x and y) over the course of a 12-month period:

SharePoint R integration and analysis » Automation »

Let’s create a data frame

tsData <- data.frame(month=1:12,
                   x=c(9, 12, 20, 12, 14, 15, 18, 12, 27, 33, 35, 21),
                   y=c(19, 36, 29, 26, 33, 18, 15, 28, 18, 19, 14, 25))
head(tsData)
  month  x  y
1     1  9 19
2     2 12 36
3     3 20 29
4     4 12 26
5     5 14 33
6     6 15 18

The rollapply() function from the zoo package can be used to calculate a rolling correlation in R.

The syntax for this function is as follows:

tidyverse in r – Complete Tutorial » Unknown Techniques »

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

where:

data: The data frame’s name

width: The window width for the rolling correlation is specified as an integer.

FUN: The function that will be used.

by.column: Specifies whether the function should be applied to each column separately. This is TRUE by default, but we need to set it to FALSE to calculate a rolling correlation.

To compute the 3-month rolling correlation in sales between x and y, use the following formula:

library(zoo)
rollapply(tsData, width=3, function(x) cor(x[,2],x[,3]), by.column=FALSE)

To calculate correlations, the width (i.e. the rolling window) should be 3 or more.

Because the two columns we wanted to calculate correlations between were in positions 2 and 3, we used cor(x[,2],x[3]) in the calculations above.

If the columns you’re interested in are in different places, change these numbers.

R compiler Application-Installation Guide »

[1]  0.3602064 -0.2250176  0.1595863 -0.3634274 -0.7970168 -0.9549191 -0.6518694 -0.9316225
[9] -0.5447048 -0.9431854

This function returns the three-month correlation between product profit x and y. Consider the following scenario:

The correlation in profit during months 1 through 3 was 0. 3602064.

The correlation in profit during months 2 through 4 was -0. 2250176.

The correlation in profit during months 3 through 5 was -0. 1595863.

And so forth.

This formula can simply be changed to determine the rolling correlation over a different time period.

The following code, for example, demonstrates how to compute the 5-month rolling correlation in profit between the two products:

Repeated Measures of ANOVA in R Complete Tutorial »

rollapply(tsData, width=5, function(x) cor(x[,2],x[,3]), by.column=FALSE)
[1]  0.3781826 -0.1882708 -0.1850412 -0.7344118 -0.5643492 -0.4000877 -0.6476290 -0.9401665

For the last 5 months, this function returns the correlation between the two product profits. Consider the following scenario,

The correlation in profit during months 1 through 5 was 0. 3781826.

The correlation in profit during months 2 through 6 was -0. 1882708.

The correlation in profit during months 3 through 7 was -0. 1850412.

And so on.

Deep Neural Network in R » Keras & Tensor Flow

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

19 − 6 =

Ads Blocker Image Powered by Code Help Pro

Quality articles need supporters. Will you be one?

You currently have an Ad Blocker on.

Please support FINNSTATS.COM by disabling these ads blocker.

Powered By
100% Free SEO Tools - Tool Kits PRO