毎時測定の4つの異なる時系列があります。
- 家の中の熱消費
- 家の外の温度
- 日射
- 風速
家の中の熱消費量を予測できるようにしたい。年間および日単位の両方で、明確な季節的傾向があります。異なるシリーズの間には明確な相関関係があるため、ARIMAXモデルを使用してそれらを近似します。これは、パッケージTSAの関数arimaxを使用して、Rで実行できます。
私はこの関数に関するドキュメントを読み、伝達関数を読み込もうとしましたが、これまでのところ、私のコードは:
regParams = ts.union(ts(dayy))
transferParams = ts.union(ts(temp))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams,xtransf=transferParams,transfer=list(c(1,1))
pred10 = predict(model10, newxreg=regParams)
私に与えます:
ここで、黒い線は実際の測定データであり、緑の線は私の比較モデルです。それは良いモデルではないだけでなく、明らかに何かが間違っています。
ARIMAXモデルと伝達関数に関する知識が限られていることを認めます。関数arimax()では(理解している限り)、xtransfは(伝達関数を使用して)メインの時系列を予測するために使用する外因性の時系列です。しかし、実際にはxregとxtransfの違いは何ですか?
より一般的には、私が間違ったことは何ですか?lm(heat〜temp radi wind * time)から得られるものよりも良いフィット感を得ることができるようにしたいと思います。
編集: コメントのいくつかに基づいて、転送を削除し、代わりにxregを追加しました。
regParams = ts.union(ts(dayy), ts(temp), ts(time))
model10 = arimax(heat,order=c(2,1,1),seasonal=list(order=c(0,1,1),period=24),xreg=regParams)
ここで、dayyは「年間通算日」であり、timeはその日の時間です。温度は再び外の温度です。これにより、次の結果が得られます。
それは良いですが、私が期待していたものとはほぼ異なります。