【问题标题】:How do you account for lags when trying to find a correlation? [SciKit-Learn]在尝试找到相关性时,您如何考虑滞后? [SciKit-学习]
【发布时间】:2016-05-13 21:49:01
【问题描述】:

我目前正在尝试在两个数据集之间进行回归。然而,一个落后于另一个,但我不确定滞后的程度或强度。

有没有办法找到两个数据集之间的最佳滞后期?例如,假设一个数据集相对于另一个数据集显示了大约 12 个月的滞后,但我们不确定这是最佳的相关期。换句话说,14 个月的时间段可能显示出更强的相关性。

我们如何在不独立运行每个时间段的相关性的情况下找到这个最佳滞后期?

PS:我正在尝试在 python 和 Scikit-learn 中完成这一切

谢谢

【问题讨论】:

    标签: python machine-learning scikit-learn correlation


    【解决方案1】:

    您可以使用cross correlation 查找使两个函数之间的相关性最大化的滞后。这是在numpy.correlate 中实现的。

    以下示例显示了两个时移序列的互相关中有一个明显的峰值:

    import numpy as np
    import matplotlib.pyplot as plt
    
    np.random.seed(42)
    
    n = 1000
    
    x = np.random.randn(n + 100)
    x1 = x[:-100]
    x2 = x[100:]
    
    c = np.correlate(x1, x2, mode='full')
    
    plt.plot(np.arange(1-n, n), c)
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2019-09-30
      • 2014-08-18
      • 2016-01-20
      • 2021-03-30
      • 1970-01-01
      • 2018-11-13
      • 2019-09-30
      相关资源
      最近更新 更多