1

我可以使用非常规时间步对 R 中的动物园对象执行自相关/滞后分析吗?如果是这样,怎么做?

我在这里能找到的唯一一篇其他帖子是关于常规时间序列的。我在不规则的时间步长上进行了一系列观察。例如,(t,y) = (0,2668), (36.62,2723), (42,2723),...在哪里

  • t是以小时为单位的时间,并且
  • y是(分类*)观察。... *从原始帖子编辑

我想每天(滞后 = 24)和每周(滞后 = 168)查找滞后相关性,以查看某些类别的观察是否在这些滞后间隔处/附近重复。有没有办法在 R 中做到这一点?我为我的数据创建了一个动物园对象,但找不到任何有关如何执行此操作的文档。

4

1 回答 1

2

您可以使用aggregate将数据转换为每日和每周间隔,然后使用对常规时间序列(例如acf)执行的任何函数计算自相关。例如:

# make a data set to play with
library(zoo)
ts <- sort(runif(100)*168*3) # 100 observations over 3 weeks
ys <- runif(100)       # y values
z <- zoo(ys, order.by=ts)

# ** convert to daily/weekly. ?aggregate.zoo
# NOTE: can use ts instead of index(z)
z.daily <- aggregate(z,index(z) %/% 24)    # has 21 elements (one per day)
z.weekly <- aggregate(z,index(z) %/% 168)  # has 3 elements (one per week)

# Now compute correlation, lag 1 (index in z.daily/weekly)
daily.acf <- acf(z.daily, lag.max=1)[1]
weekly.acf <- acf(z.weekly, lag.max=1)[1]

aggregate转换为每日或每周数据,您可以在z其中汇总每天/每周的所有事件。它通过查看index(z) %/% 24(或 168)进行分组,这是观察小时的整数部分除以 24(即,它发生的那一天)。

然后该acf 函数计算自相关(lag在向量的索引上,而不是在时间上)。

我不太了解统计数据,我注意到的一件事是,如果你这样做:

weekly.acf <- acf(z.daily,lag.max=7)[7]

当您从 计算自相关时,您会得到不同的答案z.weekly,因为它对滞后为 7 的每日数据进行自相关,而对滞后为 1 的每周数据进行自相关 - 所以我不确定我在做什么实际上是你想要什么。

于 2012-01-23T01:39:56.420 回答