質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

1785閲覧

時系列データの定常性に関して

yamato_user

総合スコア2321

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/02/20 12:26

時系列データの定常性に関して質問です。

現在、Pythonのstatsmodelを用いて、ARMAモデルの実装中です。

**使用データ:**1日ごとの気温のデータ

手法:
訓練データをt=01000とし、fitさせます。→これはきっちりFitしています。
テストデータをt=1001
2000とし、predictします。→ここで問題があります。

問題点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])

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

コード全体とデータがわからないので、正しいことはわかりませんが、感じたことをいくつか記載します。

問題点1
質問に掲載されているグラフを見る限り、パラメータがうまくないように思えます。モデル化の対象が1日の気温ということなので、ARの次元は30あたりからスタートして調整する必要があるように思えます。また、MRの次元(移動平均をとる期間)についてもひと月ごとの予測はうまくいくということからすると、30くらいから始めたほうがいいと思います。日本には四季があるので、90くらいまで増加させることも一案のように思えます。

問題点2
気温の推移をいる限り、差分系列を取ったほうがいいと思われます。この差分系列を考慮したモデルとしたいのであれば、ARIMAモデルを活用することを検討したほうがいいのではないでしょうか?

問題点4
model_arとmodel_ar_は異なるもののはずです。若干記憶が不確かですが、ARにおいてlagを指定しない(つまりデフォルト値)の場合はARMAのorder=[0,1]とした場合とで、自己相関させる期間が異なっています。詳しいことは、sammury()を使ってモデルの中身を確認してください。

投稿2020/02/22 06:24

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問