Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
予測モデルがポンコツになった日_PyLadiesTokyo10May2020-LT
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kanan
May 10, 2020
Programming
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
予測モデルがポンコツになった日_PyLadiesTokyo10May2020-LT
kanan
May 10, 2020
More Decks by kanan
See All by kanan
Pythonデータ分析コトハジメinFukuoka
kanan
0
160
Pythonデータ分析コトハジメin静岡
kanan
0
140
Python超入門データ分析編-PyLadiesCaravan広島2nd-
kanan
0
150
PyLadiesCaravan_in_苫小牧
kanan
0
180
Python超入門_データ分析編in青森
kanan
0
230
Pythonデータ分析コトハジメin愛知3rd
kanan
1
190
PyLadiesCaravan in 大阪
kanan
0
330
PyLadiesCaravan in 名古屋Returns
kanan
0
220
PyLadiesCaravan in 愛媛(Python入門データ分析編)
kanan
0
370
Other Decks in Programming
See All in Programming
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
140
Hono + Inertia + React で LP を構築した話
oukayuka
2
220
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
3
380
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
130
Building an Out-of-Order CPU
latte72
1
740
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
450
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
200
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
130
Press start. Python's next generation.
willingc
PRO
3
320
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Utilizing Notion as your number one productivity tool
mfonobong
4
580
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Speed Design
sergeychernyshev
33
2.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Tell your own story through comics
letsgokoyo
1
1.1k
Designing for humans not robots
tammielis
254
26k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
470
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
260
Transcript
予測モデルがポンコツになった日 PyLadies Tokyo MeetUp 10MAY2020 KANAN
Who am I ? • データ分析屋 研修講師 あたりやってます • PyLadies
Caravan STAFF • 意外だと思うけど、お酒が大好き • 趣味は宴、きゃんぷ、島旅 • 剣舞はじめて1年経ちました Name : KANAN(かなん) @Addition_quince https://www.facebook.com/kanae.ymst @_kanan_0518
はなすこと ✅ 1年前時系列分析の勉強で状態空間モデルやってみた ✅ 今、同じモデルで予測してみた
PyLadies Tokyo Advent Calendar 2019 当時、状態空間モデルの勉強をしてたので、 自分のビールの飲酒量を時系列データとして見てみた的なブログ。 自己相関や時系列の成分分解をやった ✅ 時系列データで自分の生活と向き合う(05DEC2019)
✅ https://asunasa.hatenablog.com/entry/2019/12/05/121918
時系列分析の大別 • 古典的手法(統計モデル以前):指数平滑か、Holt-Winters法 等 ◦ 時系列データの特徴の一部のみに焦点を当てた計算手法 ◦ 「過去と未来が似ている」「トレンドと周期性とホワイトノイズに分割できる」等
• 統計モデル:ARIMA, SARIMA, Box-Jenkins法, VAR, GARCH 等 ◦ 古典的手法を統計によって拡張、単純な構造で線形定常性データは精度が向上 ◦ 得られたデータの解釈や「予測の外れ具合」への言及など様々な活用が可能に • 状態空間モデル ◦ 古典的手法や統計手法のさらなる拡張 ◦ 目に見えない「状態」を用いることで、時系列データをより柔軟にモデル化が可能 • 曲線フィッティング:prophet, 機械学習手法 等 ◦ 膨大な計算量を短時間に行えることにより、古典的手法を拡張 ◦ 例えば曲線による表現により特徴量設計が自動推定可能になるなど • ニューラルネットワーク:LSTM 等 ◦ 長期的な依存関係を学習することができるようになる
使ったライブラリ StatsModelsは、 統計モデルの推定や統計的検定などを実施するライブラリ。 時系列系の手法もはいってる。
KANANの日々のビール飲酒量 期間は01FEB2019 - 30APR2019。 あくまでビールだけ。他のお酒は含まない。 多い日は3.0㍑飲む日も。
MEAN 1,149.438202 ㎖ STANDARD DEVIETION 818.448310 ㎖ KANANのビール飲酒量は 正規分布に従うとすると 1.1㍑を平均として±0.8㍑(0.3㍑〜1.9㍑)の間に
期間中60%が含まれるということになる。
実際は正規分布なわけない。 あ。でもわりといい感じ。
※飲酒は用法・用量を守って正しくお使いください。 ビール最高!
自己相関と 偏自己相関 ▪自己相関 statsmodels.tsa.stattools. acf ▪偏自己相関 statsmodels.tsa.stattools. pacf 若干7の周期性がありそう
時系列データの 成分分解 ▪成分分解 statsmodels.tsa.seasonal. seasonal_decompose • オリジナルデータ • トレンド成分 •
季節成分 • 残差 やはり7の周期性を検出 季節成分 < 残差 なのでやはり季節性は若干
ブログの内容はここまで。
状態空間モデルで予測してみた ▪状態空間モデル satsmodels.tsa.UnobservedComponents • 状態空間モデル ◦ 時系列データの中に隠れた因果関係を発見し、それをモデル化
状態空間モデルで予測してみた
状態空間モデル ローカルレベル ▪上のグラフ 黒い線⇨実測値 青い線⇨1観測点先の推定値 水色の帯⇨推定値の 95%信頼区間 ▪下のグラフ 青い線⇨推定した状態 (平滑化済)
水色の帯⇨推定値の 95%信頼区間
予測結果 完全新規の予測
予測結果
前の状態が更新されないから、動かない予測に ファッ!? (゜Д゜;) “ あかん”
ローカルレベルモデル
状態空間モデル ローカルレベル 季節性=7
予測結果 完全新規の予測
状態空間モデルは外生変数も扱える ✅ スケジュール表からその日がどんな日だったか抽出 ✅ 効きそうなものをフラグにしてみた
プラス(+)に働きそうな要素 ✅ TechEVENT と ぱーりー(大人数の飲み会)
マイナス(−)に働きそうな要素 ✅ 日本酒&WINE と 剣舞稽古 と 会社の勉強会(KanaLab.)
状態空間モデル ローカルレベル 季節性=7 多変量
None
予測結果 完全新規の予測 (説明変数だけ投入)
それっぽい動きをちゃんとしている ここで時系列ではなく線形回帰でいけそうなことに気づく “ 良い感じ”
時は流れ、2020年。 ✅ 当時作ったモデルのまま予測し続けてみた ✅ 1FEB2020 - 9MAY2020 あたりをみてみる
予測が・・・
理由を考えてみる 大人数の宴会自粛 TechイベントがONLINE移行 剣舞の稽古一時中止 会社の勉強会自粛 テレワーク開始(自宅飲酒開始) 日本酒・ワインの飲酒増加
ハイボールのコスパに気づく COVID-19影響で 失われたあたり前だった日常
まとめ • 状態空間モデルでのビール飲酒量予測 ◦ 状態空間モデルはやはり柔軟な推定ができそう ◦ 時系列特有の成分(季節性など)調整や外生変数投入で精度もあがる ◦
でもやはり短期的予測には良いが、長期的予測は難しい ◦ 実際は常々直近の過去データを入れながら状態推定するのが正解 • データ構造が変わるとモデルがぽんこつになる ◦ 時系列分析のみでなく、どんな手法のモデルも過去のデータに依存 ◦ 生活習慣が変わる=データ構造が変わる ◦ データ構造が変わるとモデルが正しく予測できなくなる(モデルの劣化) ◦ COVID-19で経済構造が変化 ⇨ モデルの再構築が必要かもしれない
※飲酒は用法・用量を守って正しくお使いください。 でもやっぱりビール最高!
Thank you