始める無料で始める

複数の季節性に対する調和回帰

時系列に複数の季節パターンがある場合、調和回帰は有用です。たとえば、taylor には2000年の数カ月間における、イングランドとウェールズの30分ごとの電力需要が含まれています。季節周期は 48(1日の季節性)と 7 × 48 = 336(1週間の季節性)です。年周期の季節性を考えるにはデータが十分ではありません。

auto.arima() はこのような長い時系列に当てはめるのに時間がかかるため、ここでは代わりに tslm() 関数を使ってフーリエ項を含む標準的な回帰モデルを当てはめます。これは lm() によく似ていますが、時系列を扱うように設計されています。複数の季節性がある場合は、それぞれの季節周期に対して次数 \(K\) を指定する必要があります。

# formula 引数は、当てはめるモデルの
# 記号的な記述を表します

> args(tslm)
function (formula, ...)

tslm() はこの章で新しく登場した関数ですので、多くは用意されたコードに沿って進められるはずです。taylor データはワークスペースに読み込まれています。

この演習はコースの一部です

Rで学ぶ予測入門

コースを見る

演習の手順

  • 各季節性について次数を 10 として、taylor に対する調和回帰を fit という名前で当てはめてください。
  • 20営業日先を fc として予測します。データは30分間隔であることに注意し、h の値を正しく設定してください。
  • 予測の時系列プロットを作成してください。
  • 当てはめたモデルの残差を確認してください。ご覧のとおり、auto.arima() のほうがより良い結果になったはずです。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Fit a harmonic regression using order 10 for each type of seasonality
fit <- tslm(taylor ~ fourier(___, K = c(10, 10)))

# Forecast 20 working days ahead
fc <- forecast(___, newdata = data.frame(fourier(___, K = ___, h = ___)))

# Plot the forecasts
___

# Check the residuals of fit
___
コードを編集して実行