ARIMA順序の定義に関する問題


16

これは長い投稿なので、あなたが私と一緒に耐えられることを願っています、そして私が間違っているところで私を修正してください。

私の目標は、3週間または4週間の履歴データに基づいて毎日の予測を作成することです。

データは、変圧器ラインの1つのローカル負荷の15分のデータです。季節のARIMAプロセスのモデル次数を見つけるのに問題があります。電力需要の時系列を考慮します。

元の時系列http://i.share.pho.to/80d86574_l.png

最初の3週間をサブセットとして取得し、差を付けると、次のACF / PACFプロットが計算されます。

サブセットhttp://i.share.pho.to/5c165aef_l.png

最初の違いhttp://i.share.pho.to/b7300cc2_l.png

季節的な違いと最初の違いhttp://i.share.pho.to/570c5397_l.png

これは、シリーズが少し静止しているように見えます。しかし、季節性は週単位でもあります(季節差の週と2次の差[こちら] http://share.pho.to/3owoqをご覧ください。)

したがって、モデルは次の形を取ると結論付けましょう:

ARMAp1qP1Q96

最後の図では、ラグ96での明確なスパイクは、季節的なMA(1)コンポーネントを示しています(PACFにも明確なスパイクがあるので、AR(1)も同様である可能性があります)。ラグ1:4のスパイクは、PACFの指数関数的な減衰に対応するMA(4)コンポーネントを示しています。したがって、手動で選択される初期モデルは次のようになります with

ARMA01401196

Series: x 
ARIMA(0,1,4)(0,1,1)[96] 

    Coefficients:
    ma1      ma2      ma3      ma4     sma1
    -0.2187  -0.2233  -0.0996  -0.0983  -0.9796
    s.e.   0.0231   0.0234   0.0257   0.0251   0.0804

    sigma^2 estimated as 364612:  log likelihood=-15138.91
    **AIC=30289.82   AICc=30289.87   BIC=30323.18**

auto.arima関数は、次のモデルを計算します(ステップワイズおよび近似をTRUEに設定、そうでない場合は収束に時間がかかります): with

ARMA11120296

Series: x 
ARIMA(1,1,1)(2,0,2)[96] 

    Coefficients:
    ar1      ma1    sar1    sar2     sma1     sma2
    0.7607  -1.0010  0.4834  0.4979  -0.3369  -0.4168
    s.e.  0.0163   0.0001  0.0033  0.0116   0.0216   0.0255

    sigma^2 estimated as 406766:  log likelihood=-15872.02
    **AIC=31744.99   AICc=31745.05   BIC=31784.25**

つまり、季節の差異は適用されません。ここに 両方のモデルの残差があります。Ljung Box統計では、非常に小さなp値が得られます。これは、まだ自己相関が存在することを示しています(間違っている場合は修正してください)。

予測

したがって、どちらが優れているかを判断するには、アウトサンプル精度テストが最適です。したがって、両方のモデルの予測は24時間先に行われ、相互に比較されます。結果は次のとおり です 。auto.arima http://i.share.pho.to/5d1dd934_l.png マニュアルモデルhttp://i.share.pho.to/7ca69c97_l.png

自動:

                      ME     RMSE      MAE       MPE      MAPE      MASE        ACF1 Theil's U
Training set   -2.586653 606.3188 439.1367 -1.284165  7.599403 0.4914563 -0.01219792        NA
Test set     -330.144797 896.6998 754.0080 -7.749675 13.268985 0.8438420  0.70219229  1.617834

マニュアル

                       ME     RMSE      MAE        MPE      MAPE      MASE         ACF1 Theil's U
Training set 2.456596e-03 589.1267 435.6571 -0.7815229  7.509774 0.4875621 -0.002034122        NA
Test set     2.878919e+02 919.7398 696.0593  3.4756363 10.317420 0.7789892  0.731013599  1.281764

ご質問

ご想像のとおり、これはデータセットの最初の3週間の分析です。私は次の質問に頭を悩ませています。

  1. 最適なARIMAモデルを選択するにはどうすればよいですか(すべての異なる注文を試行し、最適なMASE / MAPE / MSEをチェックしますか?パフォーマンス測定の選択はそれ自体で議論できます)。
  2. (オンライン予測のように)新しい日の予測ごとに新しいモデルと予測を生成する場合、年間トレンドをどのように考慮する必要がありますか?(このような小さなサブセットのように、私の推測ではトレンドは無視できるだろう)
  3. モデルの順序がデータセット全体で同じままであることを期待しますか?つまり、別のサブセットを取得するときに同じモデルが得られますか?
  4. この方法で休日に対処するための良い方法は何ですか?または、これに外部の休日ダミーを備えたARIMAXは必要ですか?
  5. 長い季節期間でseasonality=672説明したように、フーリエ級数アプローチを使用してモデルを試す必要があります か?
  6. もしそうなら、これは次のようになりますfit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(関数fourierはHyndmanのブログ投稿で定義されているとおりです)
  7. 初期のPおよびQコンポーネントは、Fourierシリーズに含まれていますか?

FPPから得られたほとんどの理論的知識、素晴らしいもの!

指数平滑法または(動的)線形回帰の使用について助言する前に、これも比較のために取り組んでいます。

データ

https://www.dropbox.com/sh/mzx61sskya5ze6x/Zq3A7Q6htH/trafo.txt

コード

data<-read.csv("file", sep=";")
load<-data[,3]

値の前の週でいくつかのゼロ値を削​​除しました

stepback<-672
load[is.na(load)] <- 0 # Assumed no 0's in first 672 values!
idx <- which(load == 0)
idx <- idx[which(idx>stepback)] 
load[idx] <- load[idx-stepback] 

ED<-ts(load,start=0, end=c(760,96),frequency=96)
x<-window(ED,start=0, end=c(20,96))

再現可能な例を投稿することもできますが、これにより投稿がさらに長くなりますが、必要に応じて可能です。それで、私が提供する必要がある何かがあるならば、私に知らせてください。

回答:


8
  1. 最適なARIMAモデルを選択するにはどうすればよいですか(すべての異なる注文を試行し、最適なMASE / MAPE / MSEをチェックしますか?パフォーマンス測定の選択はそれ自体で議論できます)。

サンプル外のリスク推定値は、パフォーマンス評価、したがってモデル選択のゴールドスタンダードです。理想的には、より多くのデータでリスク推定値が平均化されるように相互検証します。FPPでは、時系列の相互検証方法の1つを説明しています。他の方法のレビューについては、Tashmanをご覧ください:

タシュマン、LJ(2000)。予測精度のサンプル外テスト:分析とレビュー。International Journal of Forecasting、16(4)、437–450。doi:10.1016 / S0169-2070(00)00065-0

もちろん、相互検証には時間がかかるため、多くの場合、サンプル内の基準を使用してAICなどのモデルを選択します。これにより、auto.arimaは最適なモデルを選択します。おそらく最適ではないにしても、このアプローチは完全に有効です。

  1. (オンライン予測のように)新しい日の予測ごとに新しいモデルと予測を生成する場合、年間トレンドをどのように考慮する必要がありますか?(このような小さなサブセットのように、私の推測ではトレンドは無視できるだろう)

年ごとのトレンドが何を意味するのかわかりません。あなたが毎年の季節性を意味すると仮定すると、実際には1年未満のデータの価値でそれを考慮する方法はありません。

  1. モデルの順序がデータセット全体で同じままであることを期待しますか?つまり、別のサブセットを取得するときに同じモデルが得られますか?

データの生成方法に何らかの変更を加えなければ、最も正しい基礎となるモデルはデータセット全体で同じになると予想されます。ただし、任意のプロシージャ(auto.arimaで使用されるプロシージャなど)で選択されたモデルは、そのプロシージャがデータの異なるサブセットに適用される場合、同じになるということとは異なります。これは、サンプリングによる変動により、モデル選択手順の結果が変動するためです。

  1. この方法で休日に対処するための良い方法は何ですか?または、これに外部の休日ダミーを備えたARIMAXは必要ですか?

外部の休日のダミーが最善のアプローチです。

  1. 長い季節期間でseasonality=672説明したように、フーリエ級数アプローチを使用してモデルを試す必要がありますか?

その記事で述べたように、Rのarima関数は350を超える季節期間をサポートしていないため、何かを行う必要があります。フーリエアプローチで合理的な成功を収めました。他のオプションには、季節分解後の予測(FPPでもカバー)、およびコウモリやtbatなどの指数平滑化モデルが含まれます。

  1. もしそうなら、これは次のようになりますfit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(関数fourierはHyndmanのブログ投稿で定義されているとおりです)

それは正しいようです。さまざまな数の用語を試してください。fourier予測パッケージには、Hindmanのブログの仕様に取って代わるものとわずかに異なる仕様の関数があることに注意してください。構文については、ヘルプファイルを参照してください。

  1. 初期のPおよびQコンポーネントは、Fourierシリーズに含まれていますか?

ここで何を聞いているのかわかりません。PとQは通常、ARとMAの季節成分の程度を指します。フーリエアプローチを使用すると、季節成分はなく、代わりに季節に関連するフーリエ条件の共変量があります。これはもはや季節性ARIMAではなく、共変量が季節を近似するARIMAXです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.