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

実践 時系列解析 輪読会#1

実践 時系列解析 輪読会#1

https://reading-circle-beginners.connpass.com/event/227344/

オライリーから出版された「実践 時系列解析」の輪読会資料です。

Yoichi Tokita

October 28, 2021
Tweet

More Decks by Yoichi Tokita

Other Decks in Programming

Transcript

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

    機械学習/データ分析のPoC、導⼊⽀援、コンサル • 過去 • 広告会社で推薦システムの開発をやっていたり、警備会社で⼈物⾏動 の研究をしてたりしてました
  2. 本書の構成 • 歴史 • 1. 時系列の概論と簡単な歴史 • データに関する全て • 2.

    時系列データの⾒つけ⽅と前処理 • 3. 時系列の実践的データ解析 • 4. 時系列データのシミュレーション • 5. 時間データの保管 • 様々なモデルについて • 6. 時系列に使える統計モデル • 7. 時系列に使える状態空間モデル • 8. 特徴量の⽣成と選択 • 9. 機械学習による時系列解析 • 10. ディープラーニングによる時系列 解析 • モデリング後に考慮すべきこと • 11. 誤差の測定 • 12. 時系列モデルの当てはめ • 現実世界における活⽤事例 • 13. ヘルスケア分野への適⽤ • 14. ⾦融分野への適⽤ • 15. 政府機関が公表する時系列 • 最近の動向について • 16. 時系列パッケージ • 17. 予測に関する予測
  3. 今⽇の範囲 • 1章 時系列の概論と簡単な歴史 • 1.1 時系列の多様な⽤途の歴史 • 1.2 時系列解析の⼈気に⽕がつく

    • 1.3 統計的時系列解析の起源 • 1.4 機械学習を⽤いた時系列解析の起源 • 2章 時系列データの⾒つけ⽅と前処理 • 2.1 時系列データをどこで⾒つけるか • 2.2 表データの集合から時系列データの集合を作成する • 2.3 タイムスタンプ処理のトラブル • 2.4 データのクリーニング • 2.5 季節性データ • 2.6 タイムゾーン • 2.7 先読みの回避
  4. 1章 時系列の概論と簡単な歴史 • 1.1 時系列の多様な⽤途の歴史 • 1.2 時系列解析の⼈気に⽕がつく • 1.3

    統計的時系列解析の起源 • 1.4 機械学習を⽤いた時系列解析の起源 「時系列データはどこにでもあり、間も無く何もかもが時系列 データ化するでしょう」(1.2)
  5. 1.1 時系列の多様な⽤途 • 医学 • 治療の経過はもちろん、医療機器で時系列データが使われる(⼼電、 脳波など) • ウェアラブル機器の普及で健康な⼈も⾃然に時系列データを⽣成 •

    ビジネス的にも⼤きいインパクトが期待されている • 経済成⻑の予測 • 「ビジネス周期」の予測から始まった • 結局、「周期性」ないということがわかったらしい • 市場予測、需要予測などの場で利⽤されている
  6. 2章 時系列データの⾒つけ⽅と前処理 • 2.1 時系列データをどこで⾒つけるか • 2.2 表データの集合から時系列データの集合を作成する • 2.3

    タイムスタンプ処理のトラブル • 2.4 データのクリーニング • 2.5 季節性データ • 2.6 タイムゾーン • 2.7 先読みの回避 「データのクリーニングと適切な処理は、タイムスタンプパイプライ ンの最も重要なステップです」 「データ理解の最終的な責任はあなたにあります」(2.3)
  7. 系列データの種類 • データの⼊⼿ • コンペ(Kaggleなど)などのデータセット • ⽐較的扱いやすい • タイムスタンプ付きデータを系列データに加⼯ •

    政府統計など多数のデータソースがある • 「時系列への変換」、「クリーニング」が必要 ←本章ではこれを解説 • 時系列データと系列データ • 時系列データ解析は「時間」が要件なのではなく、順番に意味がある というデータ構造のデータに対して適⽤できる • ワインのスペクトルなど • 複数系列が利⽤できることも(多変量時系列データ)
  8. 2.2 表データの集合から時系列データの 集合を作成する • 複数の表形式データを「時系列データへ変換」するプロセスの 実例 • jupyter notebook •

    本章を通して以下のポイントが重要と感じています • データ分析で何をしたいか、⽬的を持ってデータの処理を設計する • ⽬的によって処理の内容が変わる • データに対する仮説を持ってデータを眺め、仮説を確認する • データの解釈が間違っているとその後の解析で致命的 • タイムスタンプの解釈を⾒落としがち
  9. 2.4 データのクリーニング • 指数平滑化 • 現在の状態に対して、直近のデータほど影響⼒が⼤きい • 𝑆! = 𝑑𝑆!"#

    + 1 − 𝑑 𝑥! • 𝑆! : 時刻tの状態の予測値 • 𝑥! : 時刻tの観測値 • 𝑑: 過去状態の影響⼒(減衰率、0 ≤ 𝑑 ≤ 1) • 𝑆! = 1 − 𝑑 𝑥! + 𝑑𝑥!"# + 𝑑$𝑥!"$ + 𝑑%𝑥!"% ⋯ • 他の平滑化法 • カルマンフィルタ:線形ガウス状態空間モデルを仮定した状態の予測 • LOESS:局所的に推定された散布図平滑化(ノンパラメトリックな⼿法) • 実装(notebook) 過去の影響は指数的 に減少
  10. 2.7 先読みの回避 • 系列データの特徴は「順番」に意味があること • 平滑化や⽋損値補間で時間的に先のデータを利⽤して良いかはよく検 討が必要 • 運⽤時の制約を意識する •

    モデルの評価は単純な交差検証ができない • 時間的に混合してしまうと本来知り得ない情報を使った予測が⾏われてしまう • 詳しくは11章
  11. 輪読会の進め⽅ • タイムテーブル(⽬安) • 振り返り、(初参加者いらっしゃる場合)⾃⼰紹介(5〜10min) • 解説(50〜60min) • ディスカッション(30〜40min) •

    進⾏ • 毎回の進⾏は主催者が実施します • 輪読スケジュールに従って、担当者に解説をお願いします • 解説中の質問/意⾒は積極的にお願いします • 解説終了後に全体通して議論の時間を設けます • (ご意⾒お願いします)
  12. 輪読会の進め⽅ • 輪読会ルール • 数式を細かく解説することは求めません • 時間内に該当範囲の議論の流れを理解することを重視しています • 数式が追えなかったとしても議論の流れを解説してくれれば良いです •

    発表途中の議論/質問は積極的にお願いします • 低レベルなんて気にしません。ただし、本質から外れた質問や議論が収まらない 場合は切り上げることがあります(時間は有限なのでごめんなさい) • 時間が余ったらLT歓迎します • 書籍の内容に沿っていると歓迎しますが、技術的な内容ならなんでも良いです • LTの時間は保証しません • 隔週開催の予定ですが、イベント等を考慮してずらすことはあります
  13. • Slack • reading-circle-beginners(readingcircle-6hg9698.slack.com) • #実践時系列解析 • 輪読会グループ • 統計・機械学習の輪読会(初⼼者〜中級者向け)

    • https://reading-circle-beginners.connpass.com/ • Github • https://github.com/tok41/note_oreilly_time_seriese_analysis • 主催者が個⼈的にまとめているリポジトリ。よかったらPRください。 Communication