これは長い投稿なので、あなたが私と一緒に耐えられることを願っています、そして私が間違っているところで私を修正してください。
私の目標は、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をご覧ください。)
したがって、モデルは次の形を取ると結論付けましょう:
最後の図では、ラグ96での明確なスパイクは、季節的なMA(1)コンポーネントを示しています(PACFにも明確なスパイクがあるので、AR(1)も同様である可能性があります)。ラグ1:4のスパイクは、PACFの指数関数的な減衰に対応するMA(4)コンポーネントを示しています。したがって、手動で選択される初期モデルは次のようになります
 
with
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
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週間の分析です。私は次の質問に頭を悩ませています。
- 最適なARIMAモデルを選択するにはどうすればよいですか(すべての異なる注文を試行し、最適なMASE / MAPE / MSEをチェックしますか?パフォーマンス測定の選択はそれ自体で議論できます)。
- (オンライン予測のように)新しい日の予測ごとに新しいモデルと予測を生成する場合、年間トレンドをどのように考慮する必要がありますか?(このような小さなサブセットのように、私の推測ではトレンドは無視できるだろう)
- モデルの順序がデータセット全体で同じままであることを期待しますか?つまり、別のサブセットを取得するときに同じモデルが得られますか?
- この方法で休日に対処するための良い方法は何ですか?または、これに外部の休日ダミーを備えたARIMAXは必要ですか?
- 長い季節期間でseasonality=672説明したように、フーリエ級数アプローチを使用してモデルを試す必要があります か?
- もしそうなら、これは次のようになりますfit<-Arima(timeseries,order=c(0,1,4), xreg=fourier(1:n,4,672)(関数fourierはHyndmanのブログ投稿で定義されているとおりです)
- 初期の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))
再現可能な例を投稿することもできますが、これにより投稿がさらに長くなりますが、必要に応じて可能です。それで、私が提供する必要がある何かがあるならば、私に知らせてください。