複数の季節性に対する調和回帰
時系列に複数の季節パターンがある場合、調和回帰は有用です。たとえば、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
___