93
$\begingroup$

I have 2 time-series (both smooth) that I would like to cross-correlate to see how correlated they are.

I intend to use the Pearson correlation coefficient. Is this appropriate?

My second question is that I can choose to sample the 2 time-series as well as I like. i.e. I can choose how many data points I will us. Will this affect the correlation coefficient that is output? Do I need to account for this?

For illustration purposes

option(i)

[1,    4,    7,    10] & [6,    9,    6,    9,    6]

option(ii)

[1,2,3,4,5,6,7,8,9,10] & [6,7,8,9,8,7,6,7,8,9,8,7,6]  
$\endgroup$
1
  • 1
    $\begingroup$ What is the nature of time series? Are they random walk? Stationary? Economic series? $\endgroup$
    – Aksakal
    Commented Jan 13, 2015 at 0:07

4 Answers 4

130
$\begingroup$

Pearson correlation is used to look at correlation between series ... but being time series the correlation is looked at across different lags -- the cross-correlation function.

The cross-correlation is impacted by dependence within-series, so in many cases$^{\dagger}$ the within-series dependence should be removed first. So to use this correlation, rather than smoothing the series, it's actually more common (because it's meaningful) to look at dependence between residuals - the rough part that's left over after a suitable model is found for the variables.

You probably want to begin with some basic resources on time series models before delving into trying to figure out whether a Pearson correlation across (presumably) non-stationary, smoothed series is interpretable.

In particular, you'll probably want to look into the phenomenon here.

[Edit -- the Wikipedia landscape keeps changing; the above para. should probably be revised to reflect what's there now.]

e.g. see some discussions

  1. [Why Do We Sometimes Get Nonsense-Correlations between Time Series? A Study in Sampling and the Nature of Time Series][1] (the opening quote of Yule, in a paper presented in 1925 but published the following year, summarizes the problem quite well)

  2. Christos Agiakloglou and Apostolos Tsimpanos, Spurious Correlations for Stationary AR(1) Processes http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.611.5055&rep=rep1&type=pdf (this shows that you can even get the problem between stationary series; hence the tendency to pre-whiten)

  3. The classic reference of Yule, (1926) [1] mentioned above.

You may also find the discussion here useful, as well as the discussion here

--

Using Pearson correlation in a meaningful way between time series is difficult and sometimes surprisingly subtle.


I looked up spurious correlation, but I don't care if my A series is the cause of my B series or vice versa. I only want to know if you can learn something about series A by looking at what series B is doing (or vice versa). In other words - do they have an correlation.

Take note of my previous comment about the narrow use of the term spurious correlation in the Wikipedia article.

The point about spurious correlation is that series can appear correlated, but the correlation itself is not meaningful. Consider two people tossing two distinct coins counting number of heads so far minus number of tails so far as the value of their series.

(So if person 1 tosses $\text{HTHH...}$ they have 3-1 = 2 for the value at the 4th time step, and their series goes $1, 0, 1, 2,...$.)

Obviously there's no connection between the two series. Clearly neither can tell you the first thing about the other!

But look at the sort of correlations you get between pairs of coins:

enter image description here

If I didn't tell you what those were, and you took any pair of those series by themselves, those would be impressive correlations would they not?

But they're all meaningless. Utterly spurious. None of the three pairs are really any more positively or negatively related to each other than any of the others -- its just cumulated noise (and for people thinking an edit would improve this, yes, I really do mean to write, cumulated, as in the inverse of differencing, not accumulated, which would be the total, please desist from 'fixing' this). The spuriousness isn't just about prediction, the whole notion of considering association between series without taking account of the within-series dependence is misplaced.

All you have here is within-series dependence. There's no actual cross-series relation at all.

Once you deal properly with the issue that makes these series auto-dependent - they're all integrated (Bernoulli random walks), so you need to difference (yes, it's definitely difference NOT differentiate, I do not understand why people keep replacing a perfectly correct word with a very-much-incorrect word in my various time series posts, and other people blithely approve it) them - the "apparent" association disappears (the largest absolute cross-series correlation of the three is 0.048).

What that tells you is the truth -- the apparent association is a mere illusion caused by the dependence within-series.

Your question asked "how to use Pearson correlation correctly with time series" -- so please understand: if there's within-series dependence and you don't deal with it first, you won't be using it correctly.

Further, smoothing won't reduce the problem of serial dependence; quite the opposite -- it makes it even worse! Here are the correlations after smoothing (default loess smooth - of series vs index - performed in R):

            coin1      coin2     
coin2   0.9696378 
coin3  -0.8829326 -0.7733559 

They all got further from 0. They're all still nothing but meaningless noise, though now it's smoothed, accumulated noise. (By smoothing, we reduce the variability in the series we put into the correlation calculation, so that may be why the correlation goes up.)


${\dagger}$ Cointegrated series are an obvious exception.


[1]: Yule, G.U. (1926) "Why do we Sometimes get Nonsense-Correlations between Time-Series?" J.Roy.Stat.Soc., 89, 1, pp. 1-63 (https://www.math.mcgill.ca/~dstephens/OldCourses/204-2007/Handouts/Yule1926.pdf)

$\endgroup$
13
  • 1
    $\begingroup$ Thank you for the great answer. I looked up spurious correlation, but I don't care if my A series is the cause of my B series or vice versa. I only want to know if you can learn something about series A by looking at what series B is doing (or vice versa). In other words - do they have an correlation. $\endgroup$ Commented Jan 14, 2015 at 0:09
  • 2
    $\begingroup$ Let me just add that relations between multivariate time series can be studied using cointegration. In this framework the random walks above are independent integrated (or cumulative) noise, but the framework allows for dependent integration, or cointegration, as well. Cointegration is more appropriate than correlation for studying dependencies between non-stationary time series, e.g. time series that contain random walk components. $\endgroup$
    – NRH
    Commented Aug 25, 2015 at 7:26
  • 3
    $\begingroup$ "..so you need to difference them.." what does it mean exactly? Perhaps differentiating them?.. $\endgroup$ Commented Jul 21, 2017 at 21:11
  • 3
    $\begingroup$ Differencing - see Wikipedia here or this section of the book Forecasting, Principles and Practice. On your subsequent question, the remainder of the paragraph you quote is quite explicitly saying so. (It's not the only possibility, though, just describing one reasonably common thing that's done) $\endgroup$
    – Glen_b
    Commented Jul 21, 2017 at 22:09
  • 2
    $\begingroup$ I have located what seems to be another version of the paper, and added title and authors $\endgroup$
    – Glen_b
    Commented Oct 26, 2018 at 18:04
18
$\begingroup$

To complete the answer of Glen_b and his/her example on random walks, if you really want to use Pearson correlation on this kind of time series $(S_t)_{1 \leq t \leq T}$, you should first differentiate them, then work out the correlation coefficient on the increments ($X_t = S_t - S_{t-1}$) which are (in the case of random walks) independent and identically distributed. I suggest you to use the Spearman correlation or the Kendall one, as they are more robust than the Pearson coefficient. Pearson measures linear dependence whereas Spearman and Kendall measure are invariant by monotonous transforms of your variables.

Also, imagine that two time series are strongly dependent, say moves up together and goes down together, but one undergoing sometimes strong variations and the other one having always mild variations, your Pearson correlation will be rather low unlike the Spearman and Kendall ones (which are better estimates of dependence between your time series).

For a thorough treatment on this and a better understand of dependency, you can look at Copula Theory, and for an application to time series.

$\endgroup$
1
  • $\begingroup$ "you should first differentiate them", differentiate or difference ? (Glen seems to strongly suggest 'differentiate' is incorrect in their answer above) $\endgroup$
    – baxx
    Commented Jul 11, 2023 at 20:14
12
$\begingroup$

Time series data is usually dependent on time. Pearson correlation, however, is appropriate for independent data. This problem is similar to the so called spurious regression. The coefficient is likely to be highly significant but this comes only from the time trend of the data that affects both series. I recommend to model the data and then try to see whether the modelling produces similar results for both series. Using Pearson correlation coefficient, however, will most likely give misleading results for the interpretation of the dependence structure.

$\endgroup$
3
  • $\begingroup$ can you elaborate on " Pearson correlation is appropriate for independent data"? as far as I know, for independent variables Pearson correlation would just be zero (in a sense that you don't need to carry out a Pearson correlation.) $\endgroup$
    – stucash
    Commented Mar 11, 2020 at 16:25
  • 4
    $\begingroup$ I believe random_guy meant within-series dependence. Given two series $X = x_1, ..., x_n$ and $Y = y_1, ..., y_n$, Pearson correlation assumes independence between $x_i, x_j$ (or $y_i, y_j$). However, this is usually not the case, because time-series are dependent on time and often have a trend. This trend can artificially inflate the correlation coefficient, especially if the trend itself correlates between $X$ and $Y$ (say, both go up). $\endgroup$
    – ehudk
    Commented Oct 22, 2020 at 8:39
  • $\begingroup$ Isn't that the reason why the series needs to be stationary? You remove the trend and dependence on time and look at correlations only. $\endgroup$
    – Geom
    Commented Feb 26, 2023 at 7:30
0
$\begingroup$

To calculate the significance of the Pearson correlation accounting for serial dependence of the data (auto-correlation), you can use the "Artificial Skill Method" from Davis 1978 and Chelton 1980, which basically weights the correlation at lags where a deterministic relation is expected with the very long lags (where no deterministic relation is expected). We have implemented the method in functions under R, Fortran and Matlab/Octave which give you the critical value of the correlation coefficient and/or the p-value of the Pearson correlation between time series. Here is the link to the code (please read the description in the readme file before using):

https://gitlab.com/ismael_diego/artificial-skill-method

And here is the study where we show how good this method performs by means of Monte Carlo simulations. We also show that the method is particularly suitable for time series found in nature (animal abundance, air temperature, etc) or of anthropogenic origin (pollution, CO2 concentration, etc):

https://www.sciencedirect.com/science/article/pii/S0048969722073193

If you find our function useful, please quote this paper in any publication!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.