如何计算 r 中的互相关


互相关是衡量一个时间序列与另一个时间序列的滞后版本之间相似程度的方法。

这种类型的相关性对于计算很有用,因为它可以告诉我们一个时间序列中的值是否可以预测另一个时间序列中的未来值。换句话说,它可以告诉我们一个时间序列是否是另一个时间序列的领先指标。

这种类型的相关性用于许多不同的领域,包括:

经济:消费者信心指数(CCI)被认为是一个国家国内生产总值(GDP)的领先指标。例如,如果某月 CCI 较高,则X 个月后 GDP 可能会更高。

企业:营销支出通常被认为是未来业务收入的领先指标。例如,如果一家公司在一个季度的营销上花费了异常高的资金,那么x 个季度后的总收入应该会很高。

生物学:海洋总污染被认为是某种海龟种群数量的领先指标。例如,如果某一年的污染较高,则预计x年后海龟总数量将减少。

以下示例展示了如何在 R 中计算两个时间序列之间的互相关性。

示例:如何计算 R 中的互相关

假设我们在 R 中有以下时间序列,显示某公司连续 12 个月的总营销支出(以千为单位)以及总收入(以千为单位):

 #define data
marketing <- c(3, 4, 5, 5, 7, 9, 13, 15, 12, 10, 8, 8)
revenue <- c(21, 19, 22, 24, 25, 29, 30, 34, 37, 40, 35, 30)

我们可以使用ccf()函数计算两个时间序列之间每个滞后的互相关性,如下所示:

 #calculate cross correlation
ccf(marketing, revenue)

R 中的互相关

该图表显示了不同滞后的两个时间序列之间的相关性。

要显示实际的相关值,我们可以使用以下语法:

 #display cross correlation values
print (ccf(marketing, revenue))

Autocorrelations of series 'X', by lag

    -7 -6 -5 -4 -3 -2 -1 0 1 2 3 
-0.430 -0.351 -0.190 0.123 0.489 0.755 0.868 0.771 0.462 0.194 -0.061 
     4 5 6 7 
-0.282 -0.445 -0.492 -0.358

以下是如何解释此输出:

  • 滞后 0 处的互相关为0.771
  • 滞后 1 处的互相关为0.462
  • 滞后 2 处的互相关为0.194
  • 滞后 3 处的互相关为-0.061

等等。

请注意,两个时间序列之间的相关性非常正,滞后为 -2 到 2,这告诉我们给定月份的营销支出可以很好地预测一两个月后的收入。

这具有直观意义:我们预计特定月份的高营销支出将预示着未来两个月收入的增加。

其他资源

如何计算 R 中的自相关
如何在 R 中计算偏相关
如何计算R中的滑动相关性

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注