任意の時系列を分析し、分析された時系列データに最適な従来/統計予測方法(およびそのパラメーター)を「自動的に」選択できるアルゴリズムを構築したいと思います。
このようなことをすることは可能でしょうか?はいの場合、これにどのようにアプローチできるかについてのヒントを教えてください。
任意の時系列を分析し、分析された時系列データに最適な従来/統計予測方法(およびそのパラメーター)を「自動的に」選択できるアルゴリズムを構築したいと思います。
このようなことをすることは可能でしょうか?はいの場合、これにどのようにアプローチできるかについてのヒントを教えてください。
回答:
最初に、IrishStatで概説されているアプローチは、一般的なモデルセットではなく、ARIMAモデルに固有のものであることに注意する必要があります。
「時系列予測を自動化することは可能ですか?」という主な質問に答えるには:
はい、そうです。私の需要予測の分野では、ほとんどの商用予測パッケージがそうしています。いくつかのオープンソースパッケージも同様です。最も顕著なのは、Rのオープンソース予測パッケージのRob Hyndmanのauto.arima()(自動ARIMA予測)およびETS()(自動指数平滑化予測)関数です。これら2つの関数の詳細については、こちらを参照してください。Pyramidと呼ばれるauto.arimaのPython実装もありますが、私の経験ではRパッケージほど成熟していません。
私が言及した商用製品と私が言及したオープンソースパッケージは両方とも、情報基準を使用して最良の予測を選択するという考えに基づいて機能します。など...(通常、これはサンプル検証の代わりに行われます)。
ただし、大きな警告があります。これらの方法はすべて、単一のモデルファミリ内で機能します。ARIMAモデルのセットの中から可能な限り最良のモデルを選択するか、指数平滑化モデルのセットの中から可能な限り最良のモデルを選択します。
モデルのさまざまなファミリから選択する場合、たとえば、ARIMA、指数平滑法、シータ法から最適なモデルを選択する場合、これを行うのははるかに困難です。理論的には、単一のモデルファミリ内で行うのと同じ方法で、つまり情報基準を使用して、これを行うことができます。ただし、実際には、考慮されるすべてのモデルに対してまったく同じ方法でAICまたはBICを計算する必要があり、これは大きな課題です。時系列の相互検証を使用するか、情報基準の代わりにサンプル検証を使用する方が良いかもしれませんが、それははるかに計算集約的です(そしてコードに手間がかかります)。
FacebookのProphetパッケージは、一般的な加算モデルに基づいた予測生成も自動化します。詳細については、こちらをご覧ください。ただし、多くのパラメータを持つ非常に柔軟なモデルであるにもかかわらず、Prophetは1つのモデルのみに適合します。預言者の暗黙の仮定は、GAMは「すべてを支配する1つのモデル」であり、理論的には正当化されないかもしれませんが、実際のシナリオでは非常に実用的で便利です。
上記のすべての方法に適用される別の警告:手動で分析するには多すぎるため、複数の時系列を予測する必要があるため、おそらく自動化された時系列予測を実行する必要があります。それ以外の場合は、独自の実験を行い、自分で最適なモデルを見つけることができます。自動化された予測アプローチでは、時系列ごとに最適なモデルが見つかることは決してないことに注意する必要があります-すべての時系列で平均してかなり良いモデルを提供しますが、これらの時系列のうち、自動化された方法で選択されたものよりも優れたモデルがあります。この投稿を見るこの例については。簡単に言えば、自動予測を使用する場合は、各時系列の可能な限り最良の予測ではなく、「十分な」予測を許容する必要があります。
私の提案するアプローチには、時間とともに変化する季節ダミー、複数のレベル、複数の傾向、時間とともに変化する可能性のあるパラメーター、さらに時間とともに変化する可能性のある誤差の可能性が含まれているため、ARIMAよりもはるかに一般的なモデルが含まれます。このファミリはより正確にはARMAXモデルと呼ばれますが、完全な透明性のために、乗法構造を持つ(まれな)バリアントは除外されます。
あなたはヒントを求めましたが、これはあなたが始めるのに良いものであると信じています。
このフローチャート/ワークフローに従う/エミュレートするコードを書くことをお勧めします。「最適なモデル」は、指定した基準を評価することで見つけることができます。それは、近似データのMSE / AICか、保留データのMAPE / SMAPEまたは任意の基準です。
時系列分析の特定の要件/目的/制約に気付いていない場合、これらの各ステップの詳細は非常に簡単になりますが、より深い理解/完全な時系列分析に存在する複雑性/機会の学習/評価。
時系列モデリング(または一般的なモデリング)を自動化する方法について、さらなる指示を求められました/stats//search?q=peeling+an+onionには、 「玉ねぎの皮むき」および関連タスク。
AUTOBOXは、実際に有用なモデルを形成し、この点で有用な教師になる可能性があるため、中間ステップを詳細に示します。全体的な科学的アイデアは、「必要と思われるものを追加」し、「有用ではないように見えるものを削除する」ことです。これは、BoxとBaconが以前に提案した反復プロセスです。
モデルは十分に複雑(空想的)である必要がありますが、複雑すぎない(空想的)必要があります。単純な方法が複雑な問題で機能すると仮定すると、ロジャーベーコンとベーコンの信者のトンに続く科学的方法と一致しません。ロジャー・ベーコンがかつて言ったように、私はしばしば言い換えました:科学をすることは、繰り返されるパターンを探すことです。異常を検出することは、繰り返されるパターンに従わない値を識別することです。自然の方法を知っている人は彼女の逸脱に簡単に気付くでしょう。一方、彼女の逸脱を知っている人は彼女の方法をより正確に説明します。現在のルールがいつ失敗するかを観察することにより、ルールを学習します。現在特定されている「最良のモデル/理論」が不適切であるかどうかを識別することにより、Bacon spirt pfでは、「より良い表現」
私の言葉では、「Tukeyは、データが示唆する明らかなモデルの欠陥に基づいてモデルの改良のスキームを提案する探索的データ分析(EDA)を提案しました」。これがAUTOBOXと科学の中心です。EDAは、正式なモデリングや仮説テストのタスクを超えて、データが何を教えてくれるかを見るためのものです。
自動モデリングプログラムのリトマステストは非常に簡単です。オーバーフィッティングなしで信号とノイズを分離しますか?経験的証拠は、これが実行可能であり、実行されたことを示唆しています。未来は過去の責任を負わず、結果を選択する起源に応じて変化する可能性があるため、予測の精度はしばしば誤解を招く可能性があります。