R 计算时间序列的交叉相关性教程

本文介绍两个时间序列的交叉相关性,并通过示例说明R的计算过程。

时间序列交叉相关性

交叉相关性是衡量一个时间序列与另一个时间序列的延迟版本的相似程度。这种类型相关性可以用于预测另一个时间序列的未来值,也就是说,当前时间序列是另一个时间序列的先行指标。

这种类型相关性常用在很多领域,包括:

  • 经济领域
    consumer confidence index (CCI) 消费者信心指数一般认为是gross domestic product (GDP) 的先行指标。举例:如果CCI在给定月份较高,则GDP在x月之后也会升高。

  • 商业领域
    营销支出通常被认为是企业未来收入的先行指标。例如,如果企业在某个季度的市场营销花费较常高,那么在接下来的x个季度中,总收益将会提高。

  • 生物领域
    海洋污染情况被认为是某种海龟数量的先行指标。例如,如果某一年的污染更严重,那么预计x年后海龟的总数会更少。

下面我们通过示例来计算两个时间序列的交叉相关性。

R计算示例

假设我们有市场营销费用与连续12月销售收入的数据(单位:千元)。我们可以利用ccf()函数计算两个时间序列的交叉相关性:

#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(marketing, revenue)

在这里插入图片描述

上图现实两个时间序列在不同滞后期间下的相关性。要查看实际相关性值,可以使用下面语法:

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

# 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

同时我们注意到两个时间序列在滞后-22期间为正相关性,它显示给定月份的营销支出可以较好地预测12月之后的销售收入。

这在直觉上可以理解为:我们能利用给定月份较高营销支出预测未来1~2月的销售收入。

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值