矩阵中不同时间序列的互相关

大卫

在寻找问题的解决方案时,我发现了一篇旧文章(R中不同时间序列数据值的互相关),确切地询问了我所需要的内容,但是不幸的是,它没有任何答案,所以我会再次询问以希望获得一些指导。

我从大量具有相同大小的时间序列中创建了一个大矩阵,每列都是不同的时间序列(类似于以下内容,但更大,并且有更多的值大于零):

      [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8]  [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19]
[1,]    0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0    NA    NA    NA   0.0    NA   0.0   0.0   0.0   0.0
[2,]    0   6.0   0.0   9.0   0.0   0.0   0.0   0.0   0.0   0.0    NA     0    NA   0.0    NA   0.0   0.0   0.0   0.0
[3,]    0   0.0   0.0   5.0   0.0   0.0   0.0   0.0   0.0   0.0    NA     0    NA   0.0    NA   0.0   0.0   0.0   0.0
[4,]    0   0.0   0.0  10.0   0.0   0.0   0.0   0.0   0.0   0.0    NA     0    NA   0.0    NA   0.0   0.0   0.0   0.0
[5,]    0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0    NA     0    NA   0.0    NA   0.0   0.0   0.0   0.0
[6,]    0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0    NA     0    NA   0.0    NA   0.0   0.0   0.0   0.0
[7,]    0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0    NA     0    NA   0.0    NA   0.0   0.0   0.0   0.0
[8,]    0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0    NA     0    NA   0.0    NA   0.0   0.0   0.0   0.0
[9,]    0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0   0.0    NA     0    NA  10.0    NA   0.0   0.0   0.0   0.0
.
.
.

我想确定所有时间序列之间的相关性,因此将它们放在一个矩阵中,因为我认为这可能是执行互相关过程的最佳方法,我可能错了。

因此,我也了解函数“ ccf”和“ diss()”:

  1. ccf()#在基本包中
  2. TSclust包中的diss(meter_daywise,METHOD =“ CORT”,deltamethod =“ DTW”)#

但就像在旧帖子中一样,我有相同的问题:

  1. ccf不将完整矩阵作为输入
  2. diss()接受输入矩阵并生成一些矩阵,但是在观察值的同时,我发现它不是互相关矩阵,因为值不在-1和1之间。

所以问题是我们如何计算和执行R中不同时间序列之间的互相关?

emilliman5

ccf返回每个偏移量(即滞后)的成对相关性,但是我想您想要的是该值的max(abs(correlation)。因为您有NA,所以需要设置na.action参数。

mat <- matrix(rnorm(100000), ncol=100)
mat[sample(1:length(mat), 100)] <- NA 

res <- sapply(1:ncol(mat), function(x) {
  sapply(1:ncol(mat), function(z){
    resTmp <- ccf(x = mat[, x], y = mat[, z], plot=F, na.action = na.pass)
    resTmp$acf[which.max(abs(resTmp$acf))]
  })
})

ccf帮助中:

默认情况下,不允许缺少任何值。如果na.action函数传递缺失值(如na.pass一样),则从完整的情况中计算出协方差。这意味着计算得出的估计值很可能不是有效的自相关序列,并且可能包含缺失值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Matlab中插值不同时间的矩阵

研究中的不同时间范围

使用xts在R中绘制具有不同时间索引的多个时间序列

比较 R 中具有不同时间戳的时间序列

使用向量作为输入来查询R中不同时间序列的函数

在不同时间导入

R中不同时间间隔的聚合分钟时间

如何计算R中具有不同时间范围和NA的时间序列数据的均值

按 Pandas 中不同时间范围的列表分组

处理数据帧中的不同时间格式

在 R 中重塑不同时间长度的数据

在不同时间从列表中逐行读取文件

ElasticSearch中每个字段的不同时间范围

从 R 中的不同时间步减去值

如何在不同时间调用python中的函数?

Python中4个不同时间之间的子集

如何计算R中不同时间序列长度上的最大值和最小值之间的差异?

将时间序列合并为具有不同时间实例的单个图

合并两个具有不同时间粒度的时间序列

根据日期显示不同时间

计算不同时间的价格

用numpy减去两个交错的,基于不同时间序列的数组?

在不同时间反序列化可以是数组或对象的 json 元素

FFMPEG在不同时间点将多个PNG序列作为叠加

如何在python中的同一轴上绘制具有不同时间频率的两个时间序列数据?

在 R 中,使用循环(或 while 或 for)在两个不同时间测量的变量之间执行相关性测试

在不同时间在表的不同单元格中循环播放不同的图像

Pandas:在两个不同时间序列中按日期顺序分组在同一 ID 下的列表中显示事件

找到不同时间之间最快的时间在c ++中返回错误的答案