時系列予測のためにデータセットを分割する方法は?


22

パン屋からの過去の販売データがあります(毎日、3年以上)。次に、将来の売上を予測するためのモデルを構築します(平日、天気変数などの機能を使用)。

モデルの適合と評価のためにデータセットを分割するにはどうすればよいですか?

  1. 時系列の列車/検証/テストの分割である必要がありますか?
  2. その後、トレインと検証セットを使用してハイパーパラメーターチューニングを行いますか?
  3. (ネストされた)相互検証は、時系列問題にとって悪い戦略ですか?


編集

@ ene100によって提案されたURLを辿った後に出会ったいくつかのリンクを以下に示します。

  • 理論および実際の「ローリング予測の起源」を説明するロブ・ハインドマン(Rコードを使用)
  • ローリングフォーキャスト予測のその他の用語は、「ウォークフォワード最適化」(ここまたはここ)、「ローリングホライズン」または「ムービングオリジン」です。
  • 「これらの技術の需要と半数性は不明確である」ため、これらの技術は近い将来scikit-learnに統合されないようです(ここで説明します)。

そして、これは時系列相互検証の別の提案です。

回答:


8

Rob Hyndmanのブログからのこのリンクには、役に立つかもしれないいくつかの情報があります:http : //robjhyndman.com/hyndsight/crossvalidation/

私の経験では、データを時系列セット(1年目、2年目など)に分割し、経時的なパラメーターの安定性を確認することは、堅牢なものを構築するのに非常に役立ちます。さらに、データが季節的である場合、またはグループ(地理的地域など)に分割する別の明らかな方法がある場合、それらのサブグループのパラメーターの安定性を確認することで、モデルの堅牢性と適合の意味を判断することもできますデータのカテゴリごとに個別のモデル。

統計的テストは役立つと思いますが、最終結果は「匂いテスト」にも合格するはずです。


3

1)技術的に言えば、AICおよび類似の基準を使用する場合、過剰適合を回避するのに役立つため、サンプルをテストする必要はありません。

3)いくつかの欠損値を含む時系列モデルをトレーニングすることを意味するため、標準CVの実行方法がわかりません。代わりに、トレーニングにローリングウィンドウを使用し、ウィンドウに続く1つ以上のポイントで応答を予測してください。


3
時系列のAICは、多くの場合、1期間先の予測エラーに基づいています。動的なn期間先の予測パフォーマンスについてはあまり語りません。したがって、それだけでは十分ではありません。
アクサカル

参照を提供できますか?
ジェームズ

1

私はしばしばベイジアンの観点から問題に取り組みます。この場合、戦略として過剰代入の使用を検討します。つまり、データの尤度を設定しますが、結果の一部は省略します。これらの値を欠損値として扱い、対応する共変量を使用して欠損値の結果をモデル化します。次に、どのデータが省略されるかを回転します。これは、たとえば、10倍のCVプロシージャ内で実行できます。

これは、サンプリングプログラム内で実装された場合、各ステップで、省略したデータ値の候補値を(パラメーターと一緒に)描画し、提案モデルに対するその可能性を評価することを意味します。定常性を達成した後、予測誤差を評価するために使用できるモデルに基づいて、事実に反するサンプリング値が得られます。これらのサンプルは、「これらの値がない場合、モデルはどのように見えますか?」という質問に答えます。これらの予測は係数推定に存在する不確実性からも不確実性を継承するため、たとえば2010年3月1日の予測値をすべて収集すると、その日付の予測分布が得られます。

これらの値がサンプリングされるという事実は、すべてのステップでサンプリングされた結果値が利用可能であるため、完全なデータ系列(たとえば移動平均)を利用できることに依存するエラー条件を引き続き使用できることを意味します。


1

あなたの場合、多くのオプションはありません。パン屋は1つしかないようです。したがって、サンプル外テストを実行するための唯一のオプションは時間の分離です。つまり、トレーニングサンプルは最初から最近のある時点までであり、ホールドアウトはその時点から今日までです。

yt=ft+εtftys<t


有望に聞こえます。y_s <= tの添え字「s」とは何ですか?
tobip

tyss<t

ベーカリーの売り上げはむしろ外生的な要因に依存していると思います。たとえば株価などの厳密に動的な時系列モデルだとは思いません。私のデータでは、通常の5倍CVの平均平均誤差は、ここで説明するように、フォールドの時系列順を保持する5倍時系列CVよりわずかに大きいだけです(たとえば、ExtraTreesRegressorの30.7対33.8) 。これが経験的に動的モデルをテストする有効な方法であるかどうかはわかりませんか?
tobip

ARIMAのようなものは動的モデルになります。通常、売上は永続的です。つまり、今日の売上は昨日の売上と同じです。
アクサカル

0

免責事項:ここで説明する方法は、文献の徹底的な読解に基づいていません。入力ウィンドウの長さが比較的短い多変量時系列分析用のK折り畳みCVメソッドの即興での最善の試みです(長時間にわたる依存性がない/低いことを前提としています)。データ収集期間。

最初に、一連の観測値が、window_lengthの長さの一連の観測履歴ウィンドウに変換され、ウィンドウ間のステップ1(ストライドなし)が使用されます。次に、window_lengthよりも何倍も長い(ただし、モデルインスタンスの数をはるかに超える)ウィンドウデータセットを「シャード」に分割し、シャード(トランプなど)を検証データとしてモデルインスタンスに分割します。モデルをよりきれいに分離するために、各シャードの開始時にwindow_lengthの隔離ウィンドウがすべてのトレーニングから除外されます。

モデルは自分のシャードを除くすべてのシャードでトレーニングされ、検証は自分のシャードで行われます。モデルのコレクション/アンサンブルの検証は、各シャードが対応するサブモデルによって処理されるすべてのシャードの検証エラーを合計することによって行われます。目に見えないデータのテストは、トレーニングされたすべてのモデルの出力の平均(または他の適切な組み合わせ)を使用して実行できます。

この方法は、データ収集期間全体にわたってシステム(およびデータソース)が同じであることへの依存を減らすことを目的としています。また、データのすべての大まかな部分がモデルに同じ影響を与えることも意図しています。隔離ウィンドウがトレーニングに害を及ぼさないようにするために、シャードの長さが(通常)毎日、毎週、毎年のサイクルなど、データに表示される(予想される)期間とあまり整合しない点に注意してください。

アンサンブルモデルは、おそらく完全に新しいデータを不適切に処理する可能性があります。(まだわかりません。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.