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

时间:2012-01-23 00:34:05

标签: r correlation lag zoo

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

我在这里找到的唯一一篇文章涉及常规时间序列。我在不规则的时间步骤中进行了一系列观察。例如,(t,y) = (0,2668), (36.62,2723), (42,2723),...其中

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

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

1 个答案:

答案 0 :(得分:2)

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

# 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]

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

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

我对统计数据并不是很了解,有一点我注意到,如果你这样做:

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

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