gpt4 book ai didi

r - R中多元时间序列的自相关

转载 作者:行者123 更新时间:2023-12-04 03:14:07 24 4
gpt4 key购买 nike

我有一个包含 12 个变量的矩阵,每个变量有 1343 个观测值。我希望计算每个变量的自相关并使用数据的全长来计算,即 lag.max = 1343

使用 acf() 函数,我可以计算单个变量的自相关,但我希望在单个矩阵图中绘制所有 12 个变量 (3 x 4)。

使用 acf(linear[,1],lag.max = (length(linear))) 产生:

auto-correlation of a single variable

我的数据如下所示:

> class(linear)
[1] "matrix"

> str(linear)
num [1:1343, 1:12] -102 -101 -101 -101 -101 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:1343] "2017-01-20 16:30:00" "2017-01-20 16:45:00" "2017-01-20 17:00:00" "2017-01-20 17:15:00" ...
..$ : chr [1:12] "DO0182U09A3" "DO0182U09B3" "DO0182U09C3" "DO0182U21A1" ...

我试过传递线性矩阵中列的范围

acf(linear[,1:12], lag.max = 1343)

但它似乎产生了一种 acf 图,但每个图中的标题似乎表示相关图,请参见下图。

通过阅读 ?acf 中的详细信息,我看到您可以传递一个多元时间序列,我相信我的 linear 对象是这样的,但我得到的相关图如下所示.

我的问题可能是在创建 linear 之前我有一个名为 wideRawXTS 的对象。

> str(wideRawXTS)
An ‘xts’ object on 2017-01-20 16:30:00/2017-02-03 16:00:00 containing:
Data: num [1:1343, 1:12] -102 -101 -101 -101 -101 ...
- attr(*, "dimnames")=List of 2
..$ : NULL
..$ : chr [1:12] "DO0182U09A3" "DO0182U09B3" "DO0182U09C3" "DO0182U21A1" ...
Indexed by objects of class: [POSIXlt,POSIXt] TZ:
xts Attributes:
NULL

由于某些变量中存在缺失值,我执行了如下线性插值:

linear <- apply(wideRawXTS, 2, na.interpolation, option = "linear")

我是否需要将 linear 的第一列重新转换为 XTS 对象?

任何人都可以就我在生成自相关矩阵图时可能出错的地方提供一些指导吗?

> head(linear)
DO0182U09A3 DO0182U09B3 DO0182U09C3 DO0182U21A1 DO0182U21A2 DO0182U21A3 DO0182U21B1 DO0182U21B2 DO0182U21B3
2017-01-20 16:30:00 -101.50 -103.37 -103.86 -104.78 -104.95 -105.33 -102.50 -99.43 -104.05
2017-01-20 16:45:00 -101.32 -102.75 -104.22 -104.51 -103.94 -105.29 -102.82 -101.99 -103.94
2017-01-20 17:00:00 -101.45 -103.30 -103.93 -104.70 -104.82 -105.13 -103.72 -103.95 -104.25
2017-01-20 17:15:00 -100.91 -95.92 -99.22 -103.83 -104.72 -105.19 -103.57 -101.36 -104.09
2017-01-20 17:30:00 -100.91 -103.04 -104.09 -102.15 -104.91 -105.18 -103.88 -104.09 -103.96
2017-01-20 17:45:00 -100.97 -103.67 -104.12 -105.07 -104.23 -97.48 -103.92 -103.89 -104.01
DO0182U21C1 DO0182U21C2 DO0182U21C3
2017-01-20 16:30:00 -104.51 -104.42 -105.17
2017-01-20 16:45:00 -104.74 -104.65 -105.25
2017-01-20 17:00:00 -105.02 -105.04 -105.32
2017-01-20 17:15:00 -103.90 -102.95 -105.16
2017-01-20 17:30:00 -104.75 -105.07 -105.23
2017-01-20 17:45:00 -105.08 -105.14 -104.89

odd plot

根据@eipi10 的反馈,这里是他们建议的输出。我的笔记本电脑花了大约 20 分钟来计算这个,但我不知道它代表什么!!所有的情节看起来都完全一样。

enter image description here

最佳答案

linear 是一个矩阵。要使我的第一条评论中的代码正常工作,需要将 linear 转换为数据框,或者需要明确引用每一列。下面的代码采用后一种方法:

par(mfrow=c(3,4))

set.seed(2)
linear = matrix(cumsum(rnorm(12*50)), ncol=12)

sapply(1:ncol(linear), function(i) {
acf(linear[,i], main=paste("Column:", i), lag.max=nrow(linear))
})

enter image description here

关于r - R中多元时间序列的自相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42543296/

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