Solved – How to interpret difference in correlation coefficient between ‘absolute value’ correl and ‘returns’ correl

correlation

Been really bewildered by this situation – I'm running a correlation between 'A' and 'B'; and 'C' and 'D'. I've encountered 2 scenarios which I can't really explain:

1) High correlation between absolute values of 'A' and 'B' but low correlation between 'change in A' and 'change in B'.

2) Negative correlation between absolute values of 'C' and 'D', but relatively strong positive correlation between 'change in C' and 'change in D'.

AFAIK – Scenario (1) implies that the deviations from the mean absolute value move in the same direction, but deviations from the mean changes don't move together as well. But what does this truly mean? How can I interpret this in a lay-man's sense?

No real idea about scenario (2)…

Edit: Some details to make the question clearer:

A and B are both represent time-series data (monthly) for 36 periods (3 years).

A = 100, 120, 140,…., 280, 300.

B = 10, 20, 30,…., 90, 110.

The correlation between the absolute values is relatively high. But, it may not always be accurate to correlate absolute values, so I want to understand whether % change in A and % change in B are correlated (I remember while working with stocks, we were always told to use returns rather than prices).

Change in A (only 35 data points) = 20%, 16.67%,…, 7.1%

Change in B (only 35 data points) = 100%, 50%,…, 22%.

Satterplot to visualise – https://imgur.com/a/W0apDm1

Best Answer

It seems to me that the time-series are loading on a common trend somehow, and this is generating this behavior in the correlations.

If your time series A and B share a common trend, their absolute values will be highly correlated (decreasing with the variance of the individual series' noise term). However, once you differentiate the series, the only correlation that remains is in the noise term, which will be low if the noise terms are iid. This should expain (1). A simple code in R shows what I mean:

x <- seq(1,10,length.out=1000) + rnorm(1000)

y <- seq(1,10,length.out=1000) + rnorm(1000)

cor(x,y) # 0.8664099

dx <- diff(x)

dy <- diff(y)

cor(dx,dy) #-0.005354925

(2) is a little harder (and maybe farfetched, but I dont know your data and all I am saying is that this is a plausible explanation - its likelihood depends on your data) If D,C load on a trend with opposing signs but they load on a correlated noise term with the same sign, then this pattern could be observed as well. A more realistic pattern would be if they would each have a random iid noise term. This would generate high correlations in returns - due to the correlated noise term and low correlation in absolute value - due to the trend with opposing signs. More code to exemplify:

rnd <- rnorm(1000)

z <- -seq(1,10,length.out=1000) + rnd  

w <-  seq(1,10,length.out=1000) + 0.5*rnd + rnorm(1000)

cor(z,w) # -0.8968412

dw <- diff(w)

dz <- diff(z)

cor(dw,dz) # 0.4667939

You asked for an explanation - I gave an example of how it can happen. Not sure if it answers your question, but I hope it helps you pinning down what may be the case.

Related Question