Upgrade to Pro — share decks privately, control downloads, hide ads and more …

実践 時系列解析 輪読会 Sec.11

F994a1fd489d95ac93ae9610734a25bc?s=47 Yoichi Tokita
January 27, 2022

実践 時系列解析 輪読会 Sec.11

オライリーから出版された「実践 時系列解析」の輪読会資料です。
ここでは11章「誤差の測定」を解説しています。
https://learn-stats-ml.connpass.com/event/236706/

輪読会でまとめているリポジトリはこちら。
https://github.com/tok41/note_oreilly_time_seriese_analysis

F994a1fd489d95ac93ae9610734a25bc?s=128

Yoichi Tokita

January 27, 2022
Tweet

More Decks by Yoichi Tokita

Other Decks in Science

Transcript

  1. 「実践 時系列解析」 輪読会#6 2021/12/09 @yoichi_t

  2. ⾃⼰紹介 • tokita(@yoichi_t) • 所属:株式会社Glia Computing (https://www.glia-computing.com/) • 2018年8⽉に設⽴(Co-Founder) •

    機械学習/データ分析のPoC、導⼊⽀援、コンサル • 過去 • 広告会社で推薦システムの開発をやっていたり、警備会社で⼈物⾏動 の研究をしてました
  3. ⾃⼰紹介 • tokita(@yoichi_t) • チョコボールの秘密を解明するために、⽇々データを収集&解析 チョコボール 統計

  4. 11章「誤差の測定」構成 • 11.1 予測の検証⽅法の基本 • 11.2 予測はいつ⼗分に良いとみなせるのか • 11.3 シミュレーションを⾏なってモデルの不確実性を推定する

    • 11.4 複数タイムステップ先の予測 • 11.5 モデル検証の落とし⽳
  5. 11章「誤差の測定」 • 予測精度の⾒積のベストプラクティスを議論 • 時系列データは順序に意味がある。そのため、⼀般に使われる交差検 証は使えない。 • 未来の情報を混ぜて学習することは、validationデータにモデルが過剰 にフィットしてしまうことを招く •

    本章では以下の4つのポイントを具体的に議論 • データを分割する具体的な仕組み(11.1) • 予測が⼗分に良いと判断する⽅法(11.2) • 予測の不確実性を評価する⽅法(11.3, 11.4) • 時系列モデルの構築やデプロイ時に気を付けるポイント(11.5)
  6. 11.1 予測の検証⽅法の基本 • 「予測の⽣成に⼗分間に合うように⼊⼿できるデータだけを 使ってモデル/予測を構築する」 • 未来のデータを使って学習しないということはもちろん。 • 前処理として平滑化を全期間にかけた後にtrain/validationの分割をし てしまうと、validationデータに訓練期間の情報が⼊り込んでしまう場

    合がある • 「バックテスト」(次⾴)を⾏う
  7. 11.1 予測の検証⽅法の基本: バックテスト • 訓練、検証、テスト期間を時間的にずら していくテスト⽅法 • モデルの構造によって訓練期間のウィンドウ を拡張するか移動するか考慮する •

    統計モデル • 訓練データの全ての期間が同列に考慮されるの で⻑い系列を使うと精度が落ちるかも • 「移動」ウィンドウを使う⽅がフェア? • 状態空間モデル • ⻑い期間を使うことで事後分布の時間変化の影 響が軽減される • バッチ型確率的⼿法(勾配降下法) • 重みの最新の更新には最新のデータが反映され る 書籍p.329, 図11-1 訓練 テスト
  8. 11.2 予測はいつ⼗分に良いとみなせるの か • 多くの場合の予測性能の上限 → 専⾨家による予測限界 • これを考慮して許容できる精度を検討する •

    モデル性能を向上できる可能性があるか確認するポイント • テストデータに対する出⼒を確認 • 予測値の分布が⽬標データと明らかに異なるようならモデルは不適格 • モデルの残差の時間発展を確認 • 残差が時間的に⼀様でないなら、時間的な挙動をを⽰す変数などが⾜りていない • ヌルモデル(時刻tの予測値がt-1の値と同じもの、後追いモデル)と⽐較 • これに負けるなら、モデルやデータの前処理に問題がある • 外れ値をどう処理するかを確認 • 外れ値は外れ値なので無視するのがモデルとして正しい。過剰適合か確認できる • 時間的感度分析を⾏う • 似た時系列は似た出⼒になるかを確認(??)
  9. 11.3 シミュレーションを⾏なってモデル の不確実性を推定 • 推定値(モデルパラメータ)の不確実性を試算すると役に⽴つ 場合がある • リスクの試算とかと思う • 推定値の不確実性の試算

    • モンテカルロシミュレーション • 状態空間モデルは推定値の事後分布で評価できる
  10. 11.4 複数タイムステップ先の予測 • 1ステップ先の予測についてここまで扱ってきた • 複数ステップ先の予測を⾏うと役に⽴つことがある • 複数ステップ先を予測する⽅法 • 関⼼限界に直接当てはめる(??)

    • • 遠い時間限界に対する再起的⽅法 • 1ステップ先の予測結果を逐次利⽤して、数ステップ先の予測を⽣成する • 𝑀 𝑋! = 𝑦!"# -> 𝑀 𝑋! + 𝑦!"# = 𝑦!"$ -> ... • 時系列に適⽤したマルチタスク学習 • タスクの設定として、複数ステップの予測を⾏うタスクを作る • 𝑀 𝑋! = [𝑦!"# , 𝑦!_$ , 𝑦!"& ]
  11. 11.5 モデル検証の落とし⽳ • 時系列を解析するモデルで注意するべきこと • 先読み • 本番環境で利⽤する際に本来知り得ない先の情報を利⽤することがないことを常 に意識する •

    構造変化 • 時系列データの背後のダイナミクスは変化することがありえる • ダイナミクスが変化した前後のデータは使わない • 明に構造変化をモデルに導⼊している場合は別と思う。状態空間モデルなどは構造変 化を検出するのに使うなどの例がある(個⼈的な観測)。
  12. 11章まとめ(というか感想) • 書籍で再三にわたって「先読み」の危険について書かれている が、本章では「先読み」を防ぐための評価⽅法について議論が されていた • バックテスト