ローリングウィンドウへの関数適用

Rで学ぶ時系列データ操作

Harrison Brown

Graduate Researcher in Geography

zoo のローリング関数

zoo::roll*:

  • rollmean()
  • rollmax()
  • rollsum()
  • ...

制約:

  • rollmin() はなし
  • 利用可能な関数は限定的
Rで学ぶ時系列データ操作

rollapply

rollapply(data = ftse,
          width = 7,
          FUN = min,
          align = 'right',
          fill = NA)

引数:

  • data: 時系列オブジェクト
  • width: ウィンドウ幅(k)
  • FUN: 集約関数(mean, max, ...)
  • align: ウィンドウ位置('left', 'right', 'center')
  • fill: ウィンドウ外の補完値
Rで学ぶ時系列データ操作

関数のローリング適用

目的:

  • 30日ウィンドウ内の値の範囲を求める
  • データの「変動」を概算
daily_temp
2019-01-01 13.191304
2019-01-02  6.945833
2019-01-03  8.495833
2019-01-04  8.683333
2019-01-05  7.400000
...
find_range <- function(x){
  max(x) - min(x)
}
daily_temp_range <- 
  rollapply(
      daily_temp,
    FUN = find_range,
    width = 30,
    align = 'right',
    fill = NA
  )
Rで学ぶ時系列データ操作

関数のローリング適用

autoplot(daily_temp_range) + 
  theme_light() + 
  labs(y = 'Temperature Range')

「日次気温レンジ」の時系列プロット。30日ローリングウィンドウで最小値と最大値の差(レンジ)を算出し、時間とともにその変化を示す。

Rで学ぶ時系列データ操作

演習に進みましょう

Rで学ぶ時系列データ操作

Preparing Video For Download...