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

ana*_*rce 3 r time-series

我正在研究时间序列问题,并希望分解以获得有关滞后的一些基本信息.目标是根据变量变量的变化来评估输出变量的滞后,作为下面示例data.frame的一部分.完整的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)
Run Code Online (Sandbox Code Playgroud)

我用以下内容创建了一个时间序列对象.

timeObject <- ts(timeTest, start=c(2010,7), frequency=52)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行decompose(timeObject)时,我收到一条错误消息,指出我没有或少于2个句点.我在这里显然缺少一些东西,任何建议都表示赞赏.

And*_*rie 6

要运行decompose()或其表兄stl(),您需要至少有两个完整的数据周期.周期定义为1 /频率.因此,如果您正在处理频率= 52的每周数据,那么您的期限为一年,您需要两年的数据.

例如,运行103周数据集的decompose()将失败:

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

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

但运行带有104个数据点的decompose()可以:

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"
Run Code Online (Sandbox Code Playgroud)

PS.您可能还想查看将计算自相关的acf().即使您的完整年份数据少于两年,这也会有效.例如:

acf(ts(runif(100),frequency = 52))

在此输入图像描述