如何在时间序列中正确使用 Pearson 相关性

机器算法验证 时间序列 相关性 皮尔逊-r 平滑
2022-01-19 01:08:06

我有 2 个时间序列(都是平滑的),我想相互关联以查看它们的相关性。

我打算使用皮尔逊相关系数。这合适吗?

我的第二个问题是我可以随意选择对 2 个时间序列进行采样。即我可以选择我将使用多少个数据点。这会影响输出的相关系数吗?我需要说明这一点吗?

出于说明目的

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]  
3个回答

皮尔逊相关性用于查看序列之间的相关性......但作为时间序列,相关性是在不同的滞后时间 -互相关函数中查看的。

互相关受系列内依赖性的影响,因此在许多情况下,应首先消除系列内依赖性。因此,要使用这种相关性,而不是平滑序列,实际上更常见(因为它很有意义)查看残差之间的依赖关系——在为变量找到合适的模型后剩下的粗糙部分。

您可能希望从时间序列模型的一些基本资源开始,然后再深入研究是否可以解释跨(可能)非平稳平滑序列的 Pearson 相关性。

特别是,您可能希望在此处研究这种现象。[在时间序列中,这有时被称为虚假相关性,尽管关于虚假相关性的 Wikipedia 文章对该术语的使用采取了狭隘的观点,似乎排除了该术语的这种使用。通过搜索虚假回归,您可能会发现更多关于此处讨论的问题。]

[编辑——维基百科的格局不断变化;上段。可能应该修改以反映现在的情况。]

例如看一些讨论

  1. http://www.math.ku.dk/~sjo/papers/LisbonPaper.pdf (Yule 的开场白,在 1925 年发表但次年发表的一篇论文中,很好地总结了这个问题)

  2. Christos Agiakloglou 和 Apostolos Tsimpanos,固定 AR(1) 过程的虚假相关性 http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.611.5055&rep=rep1&type=pdf (这表明你甚至可以得到平稳序列之间的问题;因此倾向于预白化)

  3. Yule 的经典参考文献,(1926)[1] 如上所述。

您可能还会发现此处的讨论以及此处的讨论很有

--

在时间序列之间以有意义的方式使用 Pearson 相关性是困难的,有时甚至出奇的微妙。


我查找了虚假相关性,但我不在乎我的 A 系列是否是我的 B 系列的原因,反之亦然。我只想知道您是否可以通过查看 B 系列正在做什么来了解 A 系列(反之亦然)。换句话说 - 它们是否具有相关性。

请注意我之前对维基百科文章中虚假相关一词的狭义使用的评论。

关于虚假相关性的一点是,序列可能看起来相关,但相关性本身没有意义。考虑两个人投掷两个不同的硬币,计算到目前为止正面的数量减去反面的数量,直到他们的系列的价值。

(所以如果人 1 抛呵呵……他们在第 4 个时间步的值有 3-1 = 2,他们的系列去1,0,1,2,....)

显然这两个系列之间没有任何联系。显然,两者都不能告诉你关于对方的第一件事!

但是看看你在硬币对之间得到的那种相关性:

在此处输入图像描述

如果我不告诉你这些是什么,而你自己拿了这些系列中的任何一对,那将是令人印象深刻的相关性,不是吗?

但它们都毫无意义彻头彻尾的虚假。这三对中的任何一对都没有比其他任何一对更积极或消极地相互关联——它只是累积的噪音虚假性不仅仅是关于预测,考虑系列之间的关联而不考虑系列内依赖性的整个概念是错误

您在这里所拥有的只是系列依赖性。没有任何实际的跨系列关系。

一旦你正确处理了使这些系列自动依赖的问题——它们都是集成的(伯努利随机游走),所以你需要区分它们——“明显”关联消失了(三个中最大的绝对跨系列相关性)为 0.048)。

这告诉你的是事实——明显的关联只是由系列内的依赖引起的幻觉。

您的问题是“如何正确使用 Pearson 相关性与时间序列” - 所以请理解:如果存在系列内依赖性并且您首先处理它,那么您将无法正确使用它。

此外,平滑不会减少串行依赖的问题;恰恰相反——它使情况变得更糟!以下是平滑后的相关性(默认黄土平滑 - 系列与指数 - 在 R 中执行):

            coin1      coin2     
coin2   0.9696378 
coin3  -0.8829326 -0.7733559 

它们都离0更远了。它们仍然只是无意义的噪声,尽管现在它是平滑的累积噪声。(通过平滑,我们减少了放入相关计算中的序列的可变性,因此这可能是相关性上升的原因。)

[1]: Yule, GU (1926) “为什么我们有时会得到时间序列之间的废话相关性?” J.Roy.Stat.Soc. , 89 , 1 , 第 1-63 页

为了完成 Glen_b 的答案和他/她关于随机游走的例子,如果你真的想在这种时间序列上使用 Pearson 相关性(小号)1, 你应该首先区分它们,然后计算增量的相关系数 (X=小号-小号-1)它们(在随机游走的情况下)独立且同分布。我建议您使用 Spearman 相关性或 Kendall 相关性,因为它们比 Pearson 系数更稳健。Pearson 测量线性相关性,而 Spearman 和 Kendall 测量通过变量的单调变换保持不变。

此外,假设两个时间序列具有很强的依赖性,比如一起上升和一起下降,但一个有时会经历强烈的变化,而另一个总是有轻微的变化,你的 Pearson 相关性将与 Spearman 和 Kendall 的相关性相当低(其中更好地估计时间序列之间的依赖关系)。

要对此进行彻底的处理并更好地理解依赖关系,您可以查看Copula Theory时间序列的应用程序

时间序列数据通常取决于时间。然而,皮尔逊相关适用​​于独立数据。这个问题类似于所谓的虚假回归。该系数可能非常显着,但这仅来自影响两个系列的数据的时间趋势。我建议对数据进行建模,然后尝试查看建模是否为两个系列产生了相似的结果。然而,使用 Pearson 相关系数很可能会给依赖结构的解释带来误导性的结果。