時系列データの定常性に関して質問です。
現在、Pythonのstatsmodelを用いて、ARMAモデルの実装中です。
**使用データ:**1日ごとの気温のデータ
手法:
訓練データをt=01000とし、fitさせます。→これはきっちりFitしています。2000とし、predictします。→ここで問題があります。
テストデータをt=1001
問題点1:
かろうじて予測できているのは、最初の方だけで、最初の方も予測できているとはいいがたいです。p/qを調整しましたが、ほぼ効果がなかったです。
【→質問1-1】:なぜでしょうか?
【→質問1-2】:実務で、ARMAを用いる時はどうやって未知のデータに適用していますか?例えば、t=01000までを使って学習させ、t=1001を予測する。次に、t=11001までを使って学習させ、t=1002を予測する。という風に、学習に使用したデータの直近1日後のみ予測すれば、誤差は上記で示した画像程大きくならないと思いますが、こんな煩わしいやり方をするのでしょうか
【→質問1-3】:今の時代、LSTMなど、優れたモデルがあると思いますが、そもそも、どのような場面で、ARMAやARIMAは使われますか?
問題点2:
「問題点1」でうまく予測できなかったので、単位根検定をすると非定常と出てきました。非定常過程が悪いのかと思い、差分系列を予測してみましたが、全く予測できていません。差分系列は、定常過程になっています。
【質問2-1】:予測できなかった理由は、定常性とは無関係でしょうか?
問題点3:
思い付きで、1月ごとの気温データなら予測できるかなと思って、やってみました。すると、うまく予測できています。
【質問3-1】:質問2-1と重複してしまうかもしれませんが、なぜでしょうか?
問題点4:
今度はがっつりプログラムの疑問点で、自分は下記のmodelはそれぞれ同じ結果を示すと思っていましたが、ARMAで記述している方は、1ヶ月ごとの気温でも全く予測できません。
【質問4-1】:order=[p,q]だと思っていたので、order=[0, 1]とすると、ARモデルになる認識でしたが、違うのでしょうか
Python
1from statsmodels.tsa.ar_model import AR 2from statsmodels.tsa.arima_model import ARMA 3 4 5model_ar = AR(train) 6model_ar_ = ARMA(train, order=[0, 1])
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。