時系列解析の使い方 - tokyowebmining #17
DESCRIPTION
時系列解析を実際のデータやビジネスに適用する場合には、教科書で学んだ理論体系とは異なった発想の順序や勘所があるのでは?との問題意識と検討中の案を紹介いたします。TRANSCRIPT
時系列解析の使い方
#TokyoWebmining 17th
2012/05/20
@horihorio
2012/05/20 時系列解析の使い方
自己紹介
• Twitter ID: @horihorio
• 学位:修士(経済学)
ファイナンス周りを少々
• 仕事上の肩書き:
データマイニング・コンサルタント
• やってきたこと:一貫して金融業で、例えば
与信リスクモデル構築・導入(法人・個人)
Baselの動向の調査、導入対応
• 興味のあること:
基本的に、雑食性。金融/リスク管理/会計(IFRS)/数学/統計/R/DB/機械学習/etc…
2 / 32
◇ 全体構成 ◇
1. はじめに
2. 時系列解析のフローチャート(案)
2012/05/20 時系列解析の使い方 3 / 32
(1) 分析方針の立案 1. 分析設計 2. 状態空間モデルの検討
(2) データ加工 1. データの観察 2. 定常時系列への変換 3. 単位根検定
(3) モデリング 1. モデリング 2. 結果のチェック
1. はじめに
本発表での問題意識
時系列解析を学んで、使ってみて、
• 何か、色々毛色が違う手法だなぁ
• 教科書にない考慮事項が多いぞ
• 使う手法の順序って、教科書の順序と色々違うぞ?
と思った(サンプル数:1)。
2012/05/20 時系列解析の使い方 4 / 32
2012/05/20 時系列解析の使い方 5 / 32
発表で扱うこと
• ビジネスへの適用を念頭に置いた、時系列解析の考え方、使い方
• 時系列解析の理論面の解説
• 実データの解析例
手法については、参考文献をご参照
扱わないこと
1. はじめに
2. 時系列解析のフローチャート(案)
時系列解析の使い方 2012/05/20
(1) 分析方針の立案 1. 分析設計 2. 状態空間モデルの検討
6 / 32
(2) データ加工 1. データの観察 2. 定常時系列への変換 3. 単位根検定
(3) モデリング 1. モデリング 2. 結果のチェック
いまココ
2.1. 分析方針の立案
分析にあたって重要なこと(時系列に限らず)
最初の分析計画の設定:
分析の 背景 / 目的 / 方法
を明確にし、結論を想定すること
よくある?迷走例:
1. 分析中、「結局何がしたいだっけ?」と混乱する
2. 何か出力されたが、「どう結論つけるの?」
とアタマを抱える
3. 報告して、「それってお願いしたことと違うんだけど…」とツッコミが入る
2012/05/20 時系列解析の使い方 7 / 32
時系列解析を採用する際の重要事項:
分析の結果、次に何が想定されるか?
• 分析→報告・行動 がその場限り 例:サーバー異常検知、ノイズフィルタリング、
過去データの観測、スポット的な分析PJの報告、等
• 分析→報告・行動まで 反復がある 例:母集団、仮定・前提の変更、要因分解、等々…、
再度 分析→報告 のサイクルが回る
2012/05/20 時系列解析の使い方 8 / 32
2.1.1. 時系列モデルの検討事項
時系列解析を採用する際の重要事項:
分析の結果、次に何が想定されるか?
• 分析→報告・行動まで 反復がある 例:母集団、仮定・前提の変更、要因分解、等々…、
再度 分析→報告 のサイクルが回る
このときには:
• 時系列解析以外の選択肢もあるのでは?
• するならば、状態空間モデルの導入も検討
2012/05/20 時系列解析の使い方 9 / 32
2.1.1. 時系列モデルの検討事項
時系列解析のイメージ図
Webサイト訪問数 (RのWWWusageで適当にモデリング)
モデル投入
これまでの 流れに基づく予測
予測+2σ
その場限り/反復の有無 とは?
2012/05/20 時系列解析の使い方 10 / 32
予測-2σ
2.1.1. 時系列モデルの検討事項
時系列モデル:過去の値から将来を当てたい。
なぜその値になるの?との構造は考えない。
先のモデル
メリット:
• 結果が分かりやすい(特に、グラフ)
• 比較的、データが集めやすい、揃っている
(分析しよう、と言うくらいだから、ねぇ…)
2012/05/20 時系列解析の使い方 11 / 32
入力:過去の値 出力:将来の値
2.1.1. 時系列モデルの検討事項
• データが10点しかないのですが
→ まず無理。X-12(U.S. Censusによる季節調整法)は、最低60データ程度が必要。
• この結果になった各々の要因を説明して
→ 無理。時系列解析が不適当。
• 前提/母集団 を変えても当たる?
→ モデルの比較、要因追跡が困難。
状態空間モデルの導入も一案(次ページ) 2012/05/20 時系列解析の使い方 12 / 32
時系列解析で困る場合
2.1.1. 時系列モデルの検討事項
実際の株価 好景気
不景気
好景気/不景気を
決めるモデル
状態空間モデルのイメージ
2012/05/20 時系列解析の使い方 13 / 32
2.1.2. 状態空間モデルの検討
(状態方程式)
(観測方程式)
• :状態(直接観測出来ない)
• :状態ノイズ(平均ゼロの正規分布)
• :観測値
• :観測ノイズ(平均ゼロの正規分布)
• :係数行列
推定したいもの:状態方程式 と 観測方程式 2012/05/20 時系列解析の使い方 14 / 32
状態空間モデルの数式表現
2.1.2. 状態空間モデルの検討
• 採用するか否かの決定は、モデルが根本的に違うので、初期段階が望ましい。
(ARIMAモデルは、状態空間モデルの特殊形と言えるが…)
• 状態方程式の推定に必要なデータがあるのか?
• 手法によっては、それなりのソフトウェアや、計算機の資源が要求されることも。
→ 日進月歩なので、そうとは言えないかも?
2012/05/20 時系列解析の使い方 15 / 32
状態空間モデルでの考慮事項
2.1.2. 状態空間モデルの検討
面白いのは、モデル入出力が行列:多変量 だけでない:
• 相互共分散・相関
→ 他変数との影響が、先行/一致/遅行 なのか分かる。
• Granger Causality(2003年ノーベル経済学賞)
→ Xが起きたらYが起きたの?を検定する。
ただし、日常生活での”Causality”とは異なる。
• Impulse Response Function
→ t 期のショックが t+1 期に及ぼす影響の計測
• Variance Decomposition
→ 予測誤差の要因分解
2012/05/20 時系列解析の使い方 16 / 32
その1:多変量時系列モデル(VAR: Vector Auto Regression)
2.1.3. その他のメモ
数理的には:
• 時間領域:自己共分散
• 周波数:スペクトル密度関数
両者は表裏一体なので、どちらで考えても一緒。
一方で接近し、Wiener-Khinchinの定理で他方を求める。
(最後の参考資料も参照)
説明をする際:
• 基本的に、時間領域にするのが無難か?
2012/05/20 時系列解析の使い方 17 / 32
その2:時間領域のARIMAか、周波数解析か?
2.1.3. その他のメモ
2. 時系列解析のフローチャート(案)
時系列解析の使い方 2012/05/20
(1) 分析方針の立案 1. 分析設計 2. 状態空間モデルの検討
18 / 32
(2) データ加工 1. データの観察 2. 定常時系列への変換 3. 単位根検定
(3) モデリング 1. モデリング 2. 結果のチェック
いまココ
• とりあえず、視覚化(グラフ、クロス表、等々)。
• 時系列で言えば、横軸=時間軸 でplot。
これだけで、方針が見える事も、多々あり。
例えば、こんな感じ
2012/05/20 時系列解析の使い方 19 / 32
データ分析で重要なこと
2.2.1. データの観察
(1)船舶の
方向角速度
(1)~(4)のグラフは、北川源四朗『時系列解析入門』より引用
(3)東京の
最高気温
(4)地震波
(2)WHARD
データ (あるハードウェアの毎月の卸売高)
2012/05/20 時系列解析の使い方 20 / 32
定常:以下の全てが成立することをいう(正確には弱定常性)
• (無条件)平均が有限
• (無条件)分散が有限
• 自己共分散が、時間のみに依存
数式を見たい方は、次ページ参照
先の図で、定常性を満たしているのは(1)のみ。
plotでわかる事:
時系列モデルをどう適用するか
モデルは、(基本的に)定常過程でないと扱えない。
2012/05/20 時系列解析の使い方 21 / 32
2.2.1. データの観察
数式表現:時系列 の
• 平均:
• 自己共分散:
• 自己相関:
注1:時系列は全て漸近理論ベース(標本数が十分大きい場合の挙動)。よって自己共分散の分母は、nが十分大きいため、nでもn-(k+1)でも一緒。
注2:上記の自己相関の表記は、暗に定常時系列を仮定している。
2012/05/20 時系列解析の使い方 22 / 32
2.2.1. データの観察
方法1:変換
• 差分 を取る(やっても2階が限度?)
• 対数や平方根の変換(一般的にはBox-Cox変換)
• 前期比、前年同期比を取る
• 移動平均値を取る
方法2:残差にも時系列構造を導入
• 分散の変動をモデル化:GARCHモデル
参考:RでGARCHモデル(私のTokyo.R#21 での発表)
http://www.slideshare.net/horihorio/garch-by-r
2.2.2. 定常時系列への変換
非定常の場合は?
何かの加工をして、定常時系列に持ち込む
2012/05/20 時系列解析の使い方 23 / 32
時系列データでよくある話
このデータは、
Random Walk(乱数列)でないよね? (Random Walk列でも、何かそれっぽいモデルが出来得る。
けど、そのモデルって一体何よ? てな議論になるので…)
ということで、最初に単位根検定で確認する
「Random Walkではない」の仮説検定
• Phillips-Perron検定 [stats::PP.test]
• Augmented Dickey-Fuller検定 [tseries::adf.test]
2012/05/20 時系列解析の使い方 24 / 32
2.2.3. 単位根検定
どういうことか?
AR(1)過程:
もし ならば、
と、モデル化する意味ある?確率過程になる。
詳細:「Rで学ぶ回帰分析と単位根検定」 @teramonagi
http://www.slideshare.net/teramonagi/r-7066155
2012/05/20 時系列解析の使い方 25 / 32
2.2.3. 単位根検定
W.N.の累積
単位根の回避方法(万能ではないが…)
• 前期との差分・変化比を取る
• 多変量時系列モデル:VAR(Vector Auto Regression) 導入
• ベクトル誤差修正モデル (VECM)導入
ただVARの場合、共和分があり得るので注意。
【共和分:単位根系列の線型結合が、定常過程になる】
共和分の検出方法は、以下の方法がある
• Engle-Grangerの二段階推定法(HamiltonのCh.19)
• Johansenの固有値検定 (HamiltonのCh.20)
単位根の処理は、Hamilton Ch.20.4.を読むと良いかも? 2012/05/20 時系列解析の使い方 26 / 32
2.2.3. 単位根検定
2. 時系列解析のフローチャート(案)
時系列解析の使い方 2012/05/20
(1) 分析方針の立案 1. 分析設計 2. 状態空間モデルの検討
27 / 32
(2) データ加工 1. データの観察 2. 定常時系列への変換 3. 単位根検定
(3) モデリング 1. モデリング 2. 結果のチェック
いまココ
個人的な感想:
• 残差の正規性、独立性チェックまで見事にハマった経験はほぼ無い。
• 予測で、数点はまだしも、遠い点はまず当たらない。
(状態空間構造で上手くすると、結構綺麗にハマる気も?)
• 綺麗なモデルを作るには、結局は色々試行錯誤。
• 苦労の箇所が違うような気が?
時系列:モデリング
回帰とか:データの有無、検査、前加工 2012/05/20 時系列解析の使い方 28 / 32
本発表での管轄外につき、
色々な書籍・資料を参考のこと
2.3. モデリング
まとめ
分析方針の立案
• 最初の分析計画の設定:分析の「背景/目的/方法」を明確にし、結論を想定すること。
• 単純な時系列解析では、要因分解、前提や母集団を変えた分析を行った後の比較が困難。時系列解析以外の選択肢か、状態空間モデルの導入を検討。
• 時系列解析で扱えるクラスは、(弱)定常過程のみ。
上手く変換して定常過程に持ち込むこと。
• 本来はW.N.だが、何かしらのモデルが出来ることもある。手戻り防止のためにも、最初に単位根検定を行う。
2012/05/20 時系列解析の使い方 29 / 32
データ加工
• J. D. Hamilton, “Time Series Analysis,” Princeton Univ. Press, 1994
和訳:沖本・井上(上下巻)、シーエーピー出版、2006年 は絶版
• 北川源四朗 『時系列解析入門』 岩波書店、2005年
→中級者向け理論書。状態空間モデルベースの解説
• J.J.F.コマンダー、S.J.クープマン、和合肇(訳) 『状態空間時系列分析入門』 シーエーピー出版、2008年
→具体的にデータを分析している過程もあり
参考文献
時系列解析の使い方 2012/05/20 30 / 32
定常時系列のとき、自己共分散を変形する
逆変換して
2012/05/20 時系列解析の使い方 31 / 32
自己共分散とスペクトル密度関数の関係(Wiener-Khinchinの定理)
参考資料
有界なスペクトル分布関数
スペクトル密度関数
の成立が必要 自己共分散
例:AR(2)モデル
ラグオペレーター を代入し、
整理して、 .
を解いて、 .
時系列解析の使い方 2012/05/20 32 / 32
時間軸での周期性表現の例
複素平面上で 周期性を持つ
参考資料