gpt4 book ai didi

r - 创建对称自相关矩阵

转载 作者:行者123 更新时间:2023-12-03 17:30:40 25 4
gpt4 key购买 nike

我正在对时间序列数据向量执行自相关过程。我希望为给定的时间序列创建一个由自相关组成的对称矩阵。

我正在使用 acf()函数来检查我的值并返回:

系列“acfData”的自相关,滞后

     0      1      2      3      4      5      6      7      8      9     10     11     12     13 
1.000 -0.038 0.253 0.266 0.250 0.267 -0.182 0.281 -0.013 -0.067 -0.122 -0.115 -0.023 -0.337

为了实现矩阵,我然后对数据执行 data.frame 更改,以允许我按任何指定的滞后滑动值:
dataF <- data.frame("data" = acfData)
names(dataF)[1] <- "acfData"
dataLag <- slide(dataF, "acfData", slideBy = -1)

给予:
> head(dataLag)
acfData acfData-1
1 -7 NA
2 5 -7
3 4 5
4 -17 4
5 6 -17
6 -10 6

当我只执行 cor() 时,这给出了正确的 2x2 矩阵功能:
> cor(na.omit(dataLag))
acfData acfData-1
acfData 1.00000000 -0.03842146
acfData-1 -0.03842146 1.00000000

然而,将其扩展到第二个时间滞后矩阵会导致先前的值发生变化。
    dataLag <- cbind(dataLag, slide(dataF, "acfData", slideBy = -2)[2])
> head(dataLag)
acfData acfData-1 acfData-2
1 -7 NA NA
2 5 -7 NA
3 4 5 -7
4 -17 4 5
5 6 -17 4
6 -10 6 -17

执行 cor()函数再次导致:
> cor(na.omit(dataLag))
acfData acfData-1 acfData-2
acfData 1.00000000 -0.03156163 0.27502462
acfData-1 -0.03156163 1.00000000 -0.07361449
acfData-2 0.27502462 -0.07361449 1.00000000

如您所见,1 步滞后数据相关性发生了变化。我认为这是由于 na.omit()由于第二个滞后的介绍,可能会删除整个前两行,给出两个 NA s,但我不确定如何在第一次滞后计算中正确省略它们。

最佳答案

正如 Ben Bolker 在评论中提到的,只需添加“pairwise.complete.obs”的“use”参数就可以正确省略 NA。

该函数的新返回是:

> cor(dataLag, use="pairwise.complete.obs")
acfData acfData-1 acfData-2
acfData 1.00000000 -0.03842146 0.27502462
acfData-1 -0.03842146 1.00000000 -0.07361449
acfData-2 0.27502462 -0.07361449 1.00000000

关于r - 创建对称自相关矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54788533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com