【发布时间】:2017-07-17 01:26:08
【问题描述】:
我有以下计算 ACF 的公式,我不想在 r 中使用函数 ACF,而是为以下数据手动计算它,然后使用 ggplot2 绘制结果
data<-rweibull(168,2,3)
time<-seq(from=as.POSIXct("2014-01-01 00:00"),to=as.POSIXct("2014-01-07 23:00"),by="hour")
df<-data.frame(time,data)
其中 k 是时间滞后,μ 是时间序列的平均值 ( , Yt=1,2,….N)。 ACF 在此处针对时间序列计算,最长时滞为 100 小时。在我的最终输出中,我想要一个包含 100 个值的向量。在方程中,我不知道如何在 R 中设置方程的 Yt+k 部分 100 个时间滞后。任何帮助,将不胜感激。
现在我有代码,但我不知道如何设置代码以在一个向量中获得 100 个滞后结果。
x <- data - mean(data)
sum(x[1:99] * x[2:100]) / sum(x^2)# TIME LAG OF 100
【问题讨论】:
-
为什么要手动操作?到目前为止,您尝试了什么?
-
对函数进行一些修改,然后比较结果。用不同的步骤设置时间延迟 Yt+k。
-
首先您可以查看
dplyr包中提供的lag函数。您将(可能)必须循环说 1:100 的滞后大小 -
你检查过
acf函数的源代码吗?
标签: r time-series