SlideShare a Scribd company logo
状態空間モデルの
考え方・使い方
TokyoR #38
2014/4/19
@horihorio
自己紹介
1 / 362014/4/19
• Twitter ID: @horihorio
• お仕事: 分析コンサルタント
• 興味: 統計色々/DB/R/Finance/金融業/会計
• 過去の発表: ここ
• 最近の出来事
• 金融業以外の分析にも進出
• 主に週末は子ども(そろそろ2歳)の相手中
• 4月から何故か転職した
状態空間モデルの考え方・使い方
紹介しないこと
2 / 362014/4/19 状態空間モデルの考え方・使い方
1. Rの色々な操作
2. 線型回帰の説明 ⇒ 前提知識とします
3. 状態空間モデルの色々な理論
! 別の本や資料を見て下さい !
対象:時間経過に伴い変わるもの(アクセス数、株価…)
↑の変化を数式表現したもの
例えば:(最初に学ぶ)ARIMAモデルで
Web会員登録者数を予測
𝑦𝑡 = 0.86𝑦𝑡−1 + 0.34𝑦𝑡−2 + 𝜀𝑡−1 + ⋯
時系列モデルって
入力:過去の値
出力:将来の値
で、なに?
3 / 362014/4/19 状態空間モデルの考え方・使い方
状態空間モデルの完成イメージ
4 / 362014/4/19 状態空間モデルの考え方・使い方
同じく Web会員登録者数を予測
𝑦𝑡 = 𝐻𝑡 𝑥 𝑡 + 𝑤𝑡 (観測方程式)
𝑥 𝑡 = 𝐹𝑡 𝑥 𝑡−1 + 𝐺𝑡 𝑣 𝑡 (状態方程式)
• 𝑦𝑡 : Web会員登録者数
• 𝑥 𝑡 : SEO, Listing, TVCMコスト、キャンペーン、etc…
+ 見えない状態(後述) などのベクトル
(参考 𝑣𝑡, 𝑤𝑡: ノイズ, 𝐹𝑡, 𝐺𝑡, 𝐻𝑡: 係数)
入力:色々な要因
出力:将来の値
構造が
見える
次何する?
を考える
今回のメッセージ
5 / 362014/4/19 状態空間モデルの考え方・使い方
これを、何回も繰り返すだけ
状態空間モデルは、
線型モデルの拡張!
アジェンダ
6 / 362014/4/19 状態空間モデルの考え方・使い方
1 線型回帰の拡張とは?
• ↑を考えることで、状態空間モデルの発想に
慣れてください
2 状態空間モデルの考え方
• 状態空間モデルの得意な面、不得意な面の
両方を知ってください
3 状態空間モデルの使い方
• 得意/不得意を踏まえ、ではどう使うべきか?
を考えていきましょう
7 / 362014/4/19 状態空間モデルの考え方・使い方
1.線型回帰の拡張とは?
【中学の復習】切片とは?
例: 𝑦 = 2 + 𝑥/2
𝑥 = 0 のとき 𝑦 = 2 。これを切片という。
言いかえ:
• 説明変数と
無関係のゲタ
• 現状の持ち点
8 / 362014/4/19 状態空間モデルの考え方・使い方
𝑥0
𝑦
2
切片
状態空間モデルの式
𝑦𝑡 = 𝐻𝑡 𝑥 𝑡 + 𝑤𝑡 (観測方程式)
𝑥 𝑡 = 𝐹𝑡 𝑥 𝑡−1 + 𝐺𝑡 𝑣 𝑡 (状態方程式)
• 𝑥 𝑡 : 状態
• 𝑣 𝑡 : 状態ノイズ(平均ゼロの正規分布)
• 𝑦𝑡 : 観測値
• 𝑤𝑡 : 観測ノイズ(平均ゼロの正規分布)
• 𝐹𝑡, 𝐺𝑡, 𝐻𝑡 : それぞれ 𝑘 × 𝑘, 𝑘 × 𝑚, 𝑙 × 𝑘 の行列
9 / 362014/4/19 状態空間モデルの考え方・使い方
これをいきなり理解する、って難しい。。。
両者を
同時推定
話を簡単に。状態を一定とすると…
状態空間モデルの式
𝑦𝑡 = 𝐻𝑡 𝑥 𝑡 + 𝑤𝑡 (観測方程式)
𝑥 𝑡 = 𝐹𝑡 𝑥 𝑡−1 + 𝐺𝑡 𝑣 𝑡 (状態方程式)
• 𝑥𝑡 : 状態
𝑥𝑡 : 説明変数
• 𝑣 𝑡 : 状態ノイズ(平均ゼロの正規分布)
• 𝑦𝑡 : 観測値
• 𝑤𝑡 : 観測ノイズ(平均ゼロの正規分布)
単なる
重回帰
10 / 362014/4/19 状態空間モデルの考え方・使い方
本報告で言いたい
たった一つのこと
では状態方程式って
11 / 362014/4/19 状態空間モデルの考え方・使い方
𝑦𝑡 = 𝐻𝑡 𝑥 𝑡 + 𝑤𝑡 (観測方程式)
𝑥 𝑡 = 𝐹𝑡 𝑥 𝑡−1 + 𝐺𝑡 𝑣 𝑡 (状態方程式)
• 𝑥𝑡 : 状態
• 𝑣 𝑡 : 状態ノイズ(平均ゼロの正規分布)
• 𝑦𝑡 : 観測値
• 𝑤𝑡 : 観測ノイズ(平均ゼロの正規分布)
𝑥 𝑡 =
𝑆𝐸𝑂𝑡
𝐿𝑖𝑠𝑡𝑖𝑛𝑔𝑡
𝑇𝑉𝐶𝑀𝑡
𝐶𝑎𝑚𝑝𝑎𝑖𝑔𝑛𝐹𝐿𝐺𝑡
…
状態 𝑡
説明変数
切片
状態方程式って
12 / 362014/4/19 状態空間モデルの考え方・使い方
まとめると:
説明変数 + 時間とともに動く切片
⇒「ゲタ」が都合よく動くので、柔軟性が高い
• なことは、 以下Blogに書いている
http://logics-of-blue.com/ローカルレベルモデル/
その他状態空間モデルのご利益
13 / 362014/4/19 状態空間モデルの考え方・使い方
• 状態方程式、観測方程式の両方を同時推定している
• モデル作成→残差を目的変数とし更にモデル、ではない
• データの増加や、昔から現在へと進むに連れて、
勝手に係数が更新される
⇒(平たく言えば)勝手に賢くなる
• 正確に言えば:予測分布、フィルタ分布、平準化分布を
順次推定&更新する
• 弾道ミサイルの計算に採用された理由かも?
等々。詳しくは参考文献を。
14 / 362014/4/19 状態空間モデルの考え方・使い方
2.状態空間モデルの考え方
状態空間モデル=時系列モデル+線型モデル
使い方も足し算?なお話デス
時系列モデル&線型回帰モデル
15 / 362014/4/19 状態空間モデルの考え方・使い方
時系列
モデル
線型
モデル
状態空間モデル
発想: 過去の自分から、将来の自分を当てたい
ARIMAモデルの場合
𝑥 𝑡 = 𝑎𝑖 𝑥𝑡−𝑖 + 𝑒𝑡
𝑝
𝑖=1
+ 𝑏𝑖 𝜀𝑡−𝑖 + 𝜀𝑡
𝑞
𝑖=1
AR
(自己回帰)
MA
(移動平均)
I
(和分)
誤差項
16 / 362014/4/19 状態空間モデルの考え方・使い方
時系列モデルとは?
時系列モデルとは?
(線型モデルと比較しての)メリット/デメリット例:
• メリット
• 理論面: 観測値どおしの相関が導入されている
• 実務面: データ収集がそこそこ簡単
• デメリット
• 理論面: 誤差が累積するので、長期予測はダメ
• 実務面: そんなに観測点は多くない、解釈し難い
17 / 362014/4/19 状態空間モデルの考え方・使い方
線型モデルとは?
略w (時系列モデルと比較しての)メリット/デメリット例:
• メリット
• 理論面: (基本モデルなので)道具や対応法が豊富
• 実務面: データ数大、結果解釈が容易な場合も
• デメリット
• 理論面: 「変数間が独立」の仮定が厳しい…
• 実務面: データ収集、前処理工数が膨大
18 / 362014/4/19 状態空間モデルの考え方・使い方
では状態空間モデルとは?
理論面を話しても面白く無いので、実務面では:
• メリット
• 時系列の構造が可視化できる
• 状態成分で、明示的に周期性・トレンドが導入可能
• デメリット
• よく部分最適解に陥り、変な係数が出てくる
• 計算コスト(時間・工数)が高い
⇒モデル更新を
ためらってしまいがち
19 / 362014/4/19 状態空間モデルの考え方・使い方
20 / 362014/4/19 状態空間モデルの考え方・使い方
3.状態空間モデルの使い方
要は、一番基礎的なカルマンフィルタですが、
時間と体力&気力的に無理でした…。
おわびに:
実務で使ってみての個人的FAQを列挙
でお茶を濁しマス
本当はやりたかったこと:パッケージdlmを使った、
TOPIXとCI先行指数の各成分との分析例
最初におわび
21 / 362014/4/19 状態空間モデルの考え方・使い方
線型回帰:
結構対応可能
(ただし、IT/数理両面での前処理技術に依存 )
状態空間:
結構無理
観測点が少ないため、変数数が少なくなりがち
(次ページ参照)
⇒ ヒヤリング&コミュニケーション時の留意事項
効果として、これも、あれも、…考えられるけど、
モデルに是非とも盛り込めない?
ケース1
22 / 362014/4/19 状態空間モデルの考え方・使い方
「変数数が少なくなりがち」な理由
線型回帰 時系列
23 / 362014/4/19 状態空間モデルの考え方・使い方
ケース1
データ
セット
(非ゼロ)
観
測
数
N
候補変数数 M
データセット
(非ゼロ)
観
測
数
N
候補変数数 M
𝑁 ≤ 𝑀
3年間の月次データならば、
方程式の最大変数数は36
ですよね…
明示するには: 説明変数に導入すれば良い。
(FLGを入れる、sin/cos成分を入れる、等々)
ただ問題点:
説明変数数はそう増やせない
(理由は、ケース1のとおり)
⇒対象の周期成分が強いならば、ARIMAモデルの方が
むしろ適当といえる。
漠然と「状態」で説明されても困る。
年間、週次での周期成分は明示できないか?
ケース2
24 / 362014/4/19 状態空間モデルの考え方・使い方
まずVARモデルとは?
⇒ ARモデルの多変数版 𝑋𝑡 = 𝐴𝑖 𝑋𝑡−𝑖
𝑝
𝑖=1
違いは、係数の決定時点
• VAR: 推定時点&期間でのスナップショット
• 状態空間: 逐次更新される
VARモデルも、他の変数効果が導入できる。
状態空間モデルとの違いは?
ケース3
25 / 362014/4/19 状態空間モデルの考え方・使い方
将来予測の際、状態空間では「将来の状態」に
ついての仮定が導入可能。VARは何も出来ない。
説明変数に自己回帰(𝑦𝑡−1, 𝑦𝑡−2, ⋯ )を入れて良いか?
私がむしろ聞きたい(わりとマジで)
今のところ… 入れないことにしている
• 理論面: 単位根(次ページ参照)が怖い
• 実務面: 説明変数を解釈する際、循環参照になる
⇒ 実質、解釈できない
26 / 362014/4/19 状態空間モデルの考え方・使い方
ケース4
そもそも単位根とは一体?
詳細は、TJOさんHPや、右の資料とか
端的にいえば:
𝑦𝑡 = 𝛽 + 𝛼𝑦𝑡−1
を仮定して係数を推定する際、もし 𝛼 が1に近いと
(ランダム・ウォーク)、t 統計量が発散(𝑝値→0)する。
⇒ ランダム・ウォークなので、将来予測が全く当たらない、
「高度に有意」なモデルとなってしまうorz
27 / 362014/4/19 状態空間モデルの考え方・使い方
ケース4(補足)
係数推定の際、尤度が部分最適解にならないか?
• はい。大概なりますw
• 実務的には
• 部分最適解でも、大幅な業務効率改善になる
• 同じ労力ならば、必死にGlobal Optimal求めるより、
お客様と、運用や活用法を相談する方が
報われることの方が多い、との実感
28 / 362014/4/19 状態空間モデルの考え方・使い方
ケース5
その他何かあります?
• ネタ切れなので、会場に丸投げw
• 質問は、資料UPDATEの際に反映させる、
かも知れません
29 / 362014/4/19 状態空間モデルの考え方・使い方
ケース6
30 / 362014/4/19 状態空間モデルの考え方・使い方
まとめ
ビジネスでのデータ分析って
31 / 362014/4/19 状態空間モデルの考え方・使い方
ビジネスの場合
• 分析して儲かる
• 相手が納得する
が大前提。
で
• 「翻訳」の妥当性
• 「1.から2.」&「A)からB)」の両方が妥当か
の両方を詰めるのは大変、だけど面白いです。
1. ビジネスの問題を
A) 数学の問題に翻訳し
B) 問題を数学的に解いて
2. 再度ビジネス世界に翻訳
• J. D. Hamilton, “Time Series Analysis,” Princeton Univ.
Press, 1994
和訳:沖本・井上(上下巻)、シーエーピー出版、2006年 は絶版
• 北川源四朗 『時系列解析入門』 岩波書店、2005年
→中級者向け理論書。状態空間モデルベースの解説
• J.J.F.コマンダー、S.J.クープマン、和合肇(訳) 『状態空
間時系列分析入門』 シーエーピー出版、2008年
→具体的にデータを分析している過程もあり
参考文献
32 / 362014/4/19 状態空間モデルの考え方・使い方
33 / 362014/4/19 状態空間モデルの考え方・使い方
Appendix
過去の Tokyo.R. で触れられた資料
http://lab.sakaue.info/wiki.cgi/JapanR2010?page=%CA%D9%B6%AF%B2%F1
%C8%AF%C9%BD%C6%E2%CD%C6%B0%EC%CD%F7#p15
ARIMAでないが
関連して
34 / 362014/4/19 状態空間モデルの考え方・使い方
時系列モデルの解説
使い方に側面を当てると...
http://www.slideshare.net/horihorio/howtousetimeseries
35 / 362014/4/19 状態空間モデルの考え方・使い方
時系列モデルの解説
とりあえず
自己営業w
(一般化)線型モデルでの仮定
数点キツイ仮定を置いていることに留意
1. 各観測値は独立
⇒ 時系列データではありえない
「状態空間は重回帰の拡張」は、この点で若干ウソ
2. 残差の分布が分かっている
3. 分散の構造が分かっている
4. 説明変数に何か変換(リンク関数)をし、線型結合する
ことで、応答変数が表現できる
引用源:R-bloggersより(→これオススメ!)
http://www.r-bloggers.com/checking-glm-model-assumptions-in-r/
36 / 362014/4/19 状態空間モデルの考え方・使い方

More Related Content

状態空間モデルの考え方・使い方 - TokyoR #38