gpt4 book ai didi

r - 如何确定时间序列的滞后?

转载 作者:行者123 更新时间:2023-12-04 11:32:36 27 4
gpt4 key购买 nike

我正在处理时间序列问题,并希望分解以获取有关滞后的一些基本信息。目标是根据作为下面示例 data.frame 的一部分的 change 变量的变化来评估输出变量的滞后。完整的 data.frame 有更多的数据,但都是按周计算的,并遵循与此示例相同的结构。

year <- c(2010,2010,2010,2010)
week <- c("P7W1","P7W2","P7W3","P7W4")
output <- c(3295,4379,4284,4832)
change <- c(1912,2177,1587,2708)

timeTest <- data.frame(year,week,output,change)

我用以下内容创建了一个时间序列对象。
timeObject <- ts(timeTest, start=c(2010,7), frequency=52)

但是,当我运行分解(timeObject) 时,我收到一条错误消息,指出我没有或少于 2 个周期。我显然在这里遗漏了一些东西,任何建议表示赞赏。

最佳答案

为了运行分解()或其表亲 STL(),您需要至少有两个完整的
数据周期。周期定义为 1/频率。因此,如果您正在处理每周数据,其中频率 = 52,那么您的周期是一年,您需要两年的数据。

例如,使用 103 周的数据集运行分解()将失败:

decompose(ts(runif(103), frequency=52))

Error in decompose(ts(runif(103), frequency = 52)) :
time series has no or less than 2 periods

但是使用 104 个数据点运行分解()有效:
decompose(ts(runif(104), frequency=52))

$seasonal
Time Series:
Start = c(1, 1)
End = c(2, 52)
Frequency = 52
[1] -0.015447737 0.392006955 0.185528936 0.372505618 -0.079588619
[6] -0.351928149 -0.472617951 -0.306461367 -0.475596801 0.266197693
[11] 0.167468113 -0.332837411 -0.427845149 -0.001199151 0.276361737
...
$type
[1] "additive"

attr(,"class")
[1] "decomposed.ts"

附注。您可能还想看看 acf() 将计算自相关。即使您只有不到两年的完整数据,这也将起作用。例如:

acf(ts(runif(100), 频率=52))

enter image description here

关于r - 如何确定时间序列的滞后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5296660/

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