Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以对R中具有非规则时间步长的zoo对象执行自相关/滞后分析吗?如果是,怎么做?_R_Correlation_Lag_Zoo - Fatal编程技术网

我可以对R中具有非规则时间步长的zoo对象执行自相关/滞后分析吗?如果是,怎么做?

我可以对R中具有非规则时间步长的zoo对象执行自相关/滞后分析吗?如果是,怎么做?,r,correlation,lag,zoo,R,Correlation,Lag,Zoo,我可以对R中具有非规则时间步长的zoo对象执行自相关/滞后分析吗?如果是,怎么做 我在这里能找到的唯一其他帖子是关于常规时间序列的。我在不规则的时间步长上进行了一系列观察。例如,(t,y)=(02668),(36.622723),(422723),…其中 t是以小时为单位的时间,并且 y是(分类*)观察*原稿编辑 我想每天(lag=24)和每周(lag=168)寻找滞后相关性,以查看某些类别的观察是否在这些滞后间隔处/附近重复。有没有办法在R中做到这一点?我为我的数据创建了一个zoo对象,但

我可以对R中具有非规则时间步长的zoo对象执行自相关/滞后分析吗?如果是,怎么做

我在这里能找到的唯一其他帖子是关于常规时间序列的。我在不规则的时间步长上进行了一系列观察。例如,
(t,y)=(02668),(36.622723),(422723),…
其中

  • t
    是以小时为单位的时间,并且
  • y
    是(分类*)观察*原稿编辑

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

您可以使用
聚合
将数据转换为每日和每周间隔,然后使用任何函数计算定期时间序列的自相关性(例如
acf
)。e、 g:


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

我对
zoo
对象知之甚少,但是在
nlme
包(
corCAR1
)中有一种方法可以将一阶自回归合并到具有不均匀间隔数据的模型中(使用
g[n]ls
[n]lme
)。谢谢!这看起来是一个很棒的软件包,我可以用它来分析其他一些需要分析的数据。直到我的第一篇文章发表后,我才意识到我太傻了。。。我的观察是明确的。尽管如此,虽然我不认为我可以在这些数据上使用这个包,但我认为我可以稍后使用它。谢谢你的帮助。我玩弄了一下,然后意识到我很傻,因为我的观察是绝对的,不是连续的。因此,我无法将观察结果相加以获得有意义的数据。我希望找到是否有任何类别在某些滞后处/附近重复,但这可能很困难,因为我没有在这些有规律间隔的时间间隔进行数据测量。如果我将来处理连续数据,我会记住这个聚合。谢谢你的帮助!
# 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]
weekly.acf <- acf(z.daily,lag.max=7)[7]