擴張視窗

在 R 中操作時間序列資料

Harrison Brown

Graduate Researcher in Geography

滾動視窗 vs. 擴張視窗

滾動視窗:

  • 起點隨時間移動
  • 視窗寬度固定

擴張視窗:

  • 起點固定
  • 視窗寬度遞增
在 R 中操作時間序列資料

擴張視窗流程

視窗寬度遞增:

  • 第 1 筆寬度為 1,
  • 第 2 筆寬度為 2,
  • 第 3 筆寬度為 3,

可用資料的摘要為何?

起點固定:

  • 視窗皆自時間序列起始點開始。

時間序列擴張視窗的概念圖。四個相鄰的方框代表時間序列。下方有四條逐漸變長的水平線,第一條到第 1 個方框末端,第二條到第 2 個方框,依此類推。

在 R 中操作時間序列資料

計算擴張視窗

R 的擴張視窗:

  • 使用 zoo::rollapply()
  • width 可為單一數字或向量

擴張視窗寬度:

  • 1234、…

產生數列的函式:

  • base::seq_along()
seq_along(daily_temp)
[1] 1 2 3 4 5 6 7 8 9 ...
    ... 363 364 365
在 R 中操作時間序列資料

計算擴張視窗

exp_widths <- seq_along(daily_temp)

exp_widths
[1] 1 2 3 4 5 ... 363 364 365
temp_expand <- 
  rollapply(
    data = daily_temp,
    FUN = mean,
    width = exp_widths,
    # Alignment must be 'right'
    align = 'right'
  )
在 R 中操作時間序列資料

繪製擴張視窗

ggplot() + 
# 原始資料
  geom_line(data = daily_temp,
            aes(x = Index,
            y = daily_temp),
            color = 'grey50') +

# 擴張視窗圖 geom_line(data = temp_expand, aes(x = Index, y = temp_expand), color = 'red') + theme_light() + labs(y = 'Degrees Celsius')

每日氣溫時間序列圖。灰色「雜訊」線顯示氣溫逐日波動很大。其上紅線為資料集的擴張平均。

在 R 中操作時間序列資料

擴張視窗的推論

  • 統計量趨近全域摘要
  • 擴張平均對變化越來越不敏感
  • 早期觀測較易受變化影響

每日氣溫時間序列圖。灰色「雜訊」線顯示氣溫逐日波動很大。其上紅線為資料集的擴張平均。

在 R 中操作時間序列資料

一起來練習吧!

在 R 中操作時間序列資料

Preparing Video For Download...