什么是滚动窗口?

R 中的时间序列数据处理

Harrison Brown

Graduate Researcher in Geography

窗口

  • 窗口是有限范围的观测值

概念类比:时间序列窗口与电脑滚动条的相似性。

R 中的时间序列数据处理

窗口

原始数据:

FTSE 时间序列图,整体呈上升趋势。

窗口:

基于 FTSE 数据集的时间序列窗口示意图。窗口范围为 1992–1993,是整体数据(1991–1999)的较小子集。

R 中的时间序列数据处理

全局汇总统计量

mean(ftse)
[1] 3565.643
autoplot(ftse) + 
  geom_hline(
    yintercept = mean(ftse)
  ) + 
  ...

全局均值:

FTSE 时间序列图,带一条约 3500 的蓝色虚线水平线。此蓝线表示数据集的全局(总体)均值。

R 中的时间序列数据处理

滚动窗口

  • 随时间移动时统计量如何变化的度量

FTSE 时间序列图。

  • 红色为滚动平均,叠加在原始数据上

FTSE 时间序列图,叠加红色滚动平均线。滚动平均紧跟原序列,总体呈上升趋势。

R 中的时间序列数据处理

用 zoo 做滚动计算

  • zoo::rollmean()
  • zoo::rollsum()
  • zoo::rollmax()
rollmean(ftse,
         k = 30,
         align = 'right',
         fill = NA)
R 中的时间序列数据处理

窗口参数

ftse_rm_right <-
  rollmean(ftse,
           k = 7,
           align = "right",
           fill = NA)
  • k:窗口大小
  • align:窗口对齐方式
  • fill:窗口外填充值
ftse_rm_right
[1]    NA
[2]    NA
[3]    NA
[4]    NA
[5]    NA          
[6]    NA
[7]    2465.971
[8]    2475.229
[9]    2482.414
...
R 中的时间序列数据处理

NA 值

ftse_rm_right
 [1]    NA
 [2]    NA
 [3]    NA
 [4]    NA
 [5]    NA          
 [6]    NA
 [7]    2465.971
 [8]    2475.229
 [9]    2482.414
...
sum(is.na(ftse_rm_right))
[1] 6
R 中的时间序列数据处理

窗口对齐

对齐方式:

  • 右对齐
data_rm <- rollmean(
  data,
  k = 7,
  fill = NA,
  align = "right"
)

时间序列图,叠加右对齐窗口。该图展示对齐参数如何决定滚动函数输出相对原数据的"放置"位置。本例中,右对齐将输出放在其作用窗口的右侧。

R 中的时间序列数据处理

窗口对齐

对齐方式:

  • 左对齐
data_rm <- rollmean(
  data,
  k = 7,
  fill = NA,
  align = "left"
)

时间序列图,叠加左对齐窗口。该图展示对齐参数如何决定滚动函数输出相对原数据的"放置"位置。本例中,左对齐将输出放在其作用窗口的左侧。

R 中的时间序列数据处理

窗口对齐

对齐方式:

  • 居中对齐
data_rm <- rollmean(
  data,
  k = 7,
  fill = NA,
  align = "center"
)

时间序列图,叠加居中对齐窗口。该图展示对齐参数如何决定滚动函数输出相对原数据的"放置"位置。本例中,居中对齐将输出放在其作用窗口的中间。

R 中的时间序列数据处理

Passons à la pratique !

R 中的时间序列数据处理

Preparing Video For Download...