gpt4 book ai didi

r - R中的分组ACF

转载 作者:行者123 更新时间:2023-12-01 13:43:50 24 4
gpt4 key购买 nike

我想计算按分组变量分组的时间序列的acf。具体来说,我有一个数据框,包含一个单一的时间序列(变量a)和一个分组变量(例如,工作日,变量b)。这是一个例子:

data <- data.frame(a=rnorm(1:150), b=rep(rep(1:3, each=5), 10))

现在,我想为分组变量的不同值计算acf。例如,对于滞后2和组1,我想获得仅在b = 1的时间点t上计算的t和t-2之间的相关性(t-2的b值无关紧要)。我知道函数acf可以轻松计算acf,但是我找不到包含分组变量的方法。

我可以手动计算所需的相关性,但是由于我拥有大量数据集以及分组变量的大量滞后和值,我希望有一种更优雅,更快捷的方法。这是上述示例的手动计算(滞后2,b = 1):
sel <- which(data$b==1)
cor(data$a[sel[sel > 2]], data$a[sel[sel>2] - 2])

最佳答案

我有兴趣的人现在选择手动计算:

getacfgroup <- function(ts, lag, groupvar, group) {
sel <- which(groupvar == group)
cor(ts[sel[sel > lag]], ts[sel[sel>lag] - lag])
}

然后,我通过以下方式使用函数来计算滞后2和b = 1的期望值:
getacfgroup(data$a, 2, data$b, 1)

为了获得所有延迟的值,我只是将所有内容包装在一个sapply调用中,将所有延迟和组包装在另一个lapply调用中。

编辑:如果有人有一个更优雅的解决方案,我仍然会感兴趣。

关于r - R中的分组ACF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37325517/

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