【问题标题】:dynamic correlation between vectors (with sampling)向量之间的动态相关性(带采样)
【发布时间】:2019-07-15 03:10:03
【问题描述】:

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

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 中是否有任何优雅而简单的方法?

P.S.:编码的简单性比计算所需的时间更重要。

【问题讨论】:

    标签: r time correlation


    【解决方案1】:

    TTR 包可能会提供您正在寻找的内容。

    应该很简单:

    TTR::runCor(A, B)
    

    有一整篇关于滚动相关性的博文here

    【讨论】:

    • 我对这个公式有疑问:我收到一条消息“runCov(x, y, n, use = use, sample = sample, concurrent) 中的错误:系列包含非领先的 NAs”。添加到公式 runCor(..., na.rm = TRUE) 没有帮助,我得到“runCor 中的错误(data$force_left[tr, ], data$force_right[tr, ], n = 50, :未使用的参数(na.rm = T)”。你知道如何解决它吗?
    猜你喜欢
    • 2012-12-29
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 2021-06-14
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多