首页 > 解决方案 > 向量之间的动态相关性(带采样)

问题描述

说,我有两个相同长度的向量

A = mtcars$mpg
B = mtcars$cyl

我可以计算整个向量之间的相关性

cor (A, B)

并获得一个值 ( -0.852162)。

我需要的是计算两个向量之间的相关性,采样率为 10,这意味着我从 A 和 B 中的第一个数据点开始,从它的右侧取 5 个值(左侧没有值),计算一个相关系数,把它写进向量C。然后我在A&B中取下一个值,右边取5个值,左边取1个值,写成向量;然后再次转移到下一个值,依此类推。结果向量 C 必须包含与 A 或 B (N=32) 相同数量的值,并且 C 中的每个值表示采样率 10 的 b/w A 和 B 的相关性(左侧 5 个值,左侧 5 个值)直接从该数据点(如果有)。在 R 中有什么优雅而简单的方法吗?

PS:编码的方便性比计算所需的时间更重要。

标签: rtimecorrelation

解决方案


TTR软件包可能会提供您正在寻找的东西。

它应该很简单:

TTR::runCor(A, B)

这里有一整篇关于滚动相关性的博文。


推荐阅读