向量之间的动态相关性(带采样)
dynamic correlation between vectors (with sampling)
比如说,我有两个相同长度的向量
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 中的每个值代表 A 和 B 的相关性 b/w,采样率为 10(左侧 5 个值和 5 个在该数据点的右侧(如果可用)。
在 R 中有什么优雅简单的方法吗?
P.S.: 编码的难易程度比计算所需的时间更重要。
TTR
软件包可能会提供您正在寻找的内容。
它应该像这样简单:
TTR::runCor(A, B)
有一整篇博客 post 关于滚动相关 here。
比如说,我有两个相同长度的向量
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 中的每个值代表 A 和 B 的相关性 b/w,采样率为 10(左侧 5 个值和 5 个在该数据点的右侧(如果可用)。 在 R 中有什么优雅简单的方法吗?
P.S.: 编码的难易程度比计算所需的时间更重要。
TTR
软件包可能会提供您正在寻找的内容。
它应该像这样简单:
TTR::runCor(A, B)
有一整篇博客 post 关于滚动相关 here。