20141220 tokyowebmining state_spacemodel

18
データ分析の為の 状態空間モデルによる モデリング徹底入門 できずにドアノック。 2014/12/20 Tokyowebmining #41 KennyISHIMURA 1/20

Transcript of 20141220 tokyowebmining state_spacemodel

データ分析の為の状態空間モデルによる

モデリング徹底入門できずにドアノック。

2014/12/20

Tokyowebmining #41

KennyISHIMURA

1/20

発表者自己紹介

• 某通信系グループのSE。• 最近はセキュリティの分野に足を踏み込みつつあり

ます。• 今回は制御工学の分野の話が多くなりますが、素人

の独学なので、勘違い等あると思います。 お詳しい方のコメントをお待ちしております。

2/20

目次• はじめに• 状態空間モデルとは• 状態空間モデルの使い方• 状態空間モデルの限界• 今後の入門(モデリング方法)

• 参考資料

3/20

はじめに1• 今回の発表(学習)のモチベーションはこの文章でした• 「時系列解析で⽤いられるさまざまなモデルを、状

態空間モデルによって統一的に取り扱うことができる。一方、時系列解析の多くの問題が状態空間モデルの状態推定の問題として定式化できる」(参考文献1 時系列解析入門P.125)

• 時系列解析といっても⼿法が⾊々あって全部学ぶのは結構大変そう。でも、結局は状態空間モデルとして統一的に考えられる︖

4/20

はじめに2

5/20

AR、MA、ARMA、ARIMA

ARCH、GARCH、VEC、DVEC、CCC、DCC、CCgirls

SV、ARFIMA、ARIMAX、東MAX、MAX

VAR、VMA、VARMA 、 VARIMA

TAR、SETAR、ST、LSTAR、RATS & STAR

・・・

時系列分析で⽤いられるさまざまなモデルいっぱい(違うのもあるかも)

状態空間モデル だけで済む︖

状態空間モデルとは1• 1960年にカルマン(カルマンフィルターで有名な方)に

よって提案された。• 制御工学の中では、現代制御(といっても1960-80年

ぐらい)に使⽤される重要なモデリング⼿法。• 特徴としては、2つの式でシステムを表すこと。• 1つは状態xを示す式で時系列で直前の値により変わ

る (システム方程式)

• もう1つは実際に観測される値yを示す式(観測方程式)

であり、これは状態によって変わるシステム方程式

観測方程式

6/20

状態空間モデルとは2

時間

システム状態

観測値

7/20

x1 x2 x3 xk

y1 y2 y3 yk

・・・

・・・

・・・

• 時間が経つにつれてシステム状態は直前の状態のみから決まったルールで変化(赤矢印)し、その時のシステム状態から決まったルール(⻘矢印)で観測値が決まる。(誤差項はあります)

⇒ただこれを素直に解釈すると混乱するかも(私はしました)

1 2 3 k

状態空間モデルとは3• 状態空間モデルは、簡単なモデルの場合かえってめんど

くさい・難しいかも(私⾒です)

• しかし、いったんモデルが決まれば(システム同定)、その過去/現在/未来の状態や観測値予測が統一的な方法でわかるところが利点。(合ってますか︖)

• 現在までの観測値から• 「フィルタ」 現在の状態の推定• 「一期先予測」 一期先の観測値/状態の予測• 「平滑化」 過去の状態の推定

8/20

x1 x2 x3 x4

y1 y2 y3 y4

現在

使⽤観測値

フィルタ 一期先予測平滑化

システム状態

観測値

x5

y5

状態空間モデルとは4

9/20

• 前ページの様なグラフィカルモデルの一種と考えると、このような整理になる。

グラフィカルモデル

UPIN: Undiredted

Probabilistic

Independent Network

・MRF︓Markov Random Field

・Markov Networks

・Boltzmann machines

・Log-linear model

DPIN: Directed

Probabilistic

Independent Network

ベイジアンネットワーク鎖状構造グラフィカルモデル

一般状態空間モデル

HMM(HiddenMar

kovModel)

SSM(State Space

Model)

参考資料4より

状態空間モデルとは5

10/20

• 制御工学の枠組みでの位置づけ• 伝達関数(古典制御)と変換が容易

状態空間モデルとは6

11/20

• 状態/観測値の分布をどの様に考えるかはいくつかの表現方法がある。

参考資料4より

真の分布(理論分布)

ガウス分布(カルマンフィルタで使⽤)

ガウス分布の和

ヒストグラム(階段関数)

折れ線近似

モンテカルロ近似(粒⼦フィルタ)

状態空間モデルの使い方1 全体概要

12/20

時系列データを観測

状態空間モデル

AR等の時系列モデリング その分野の知識を活か

して直接モデリング

部分空間同定法等

数学的⼿法

カルマンフィルタ(ガウス型)

目標

状態空間モデル作成(システム同定)

状態空間モデル

フィルタ予測

平滑化

目標達成

非ガウス型フィルタ 粒⼦フィルタ

正準系

説明変数

直接的な状態空間モデリング

間接的な状態空間モデリング

参考文献4,5 参考文献7

参考文献1,5

状態空間モデルの使い方2 間接的モデリング• ARMA(AutoRegressive Moving Average)モデルの状態空間モデル例。

• 一旦ARMAモデル⽤のアルゴリズムで係数や次数を決定してから、正準系(Canonical Form)と呼ばれる形の一つに当てはめればよい。複数の形があるので後の目的に応じて適切な形を選ぶ。⇒結局ARMAモデルのことは勉強しなきゃ。。。

• 可観測正準系

• 可制御正準系

13/20

β0=b0、β1=b1-a1b0、βn=bn-anb0

y(k)+a1y(k-1)+・・・+any(k-n) = b0v(k)+b1v(k-1)+ ・・・+bnv(k-n)

状態空間モデルの使い方3• カルマンフィルタによるフィルタリング• ⾊々な例がWeb上でありますので、省略。。。

14/20

状態空間モデルの(入門者の)限界• 結局は、モデル化するためには時系列モデル特有の

パラメータ推定⼿法を使⽤するか、部分同定法というちょっと入門者には難し目の⼿法を使⽤しなければならない。

• 実は、システムモデルにおける一期前の状態ベクトルxtは、実時間tの値でなくてよいみたいですが、そうなると結局なんでもできそうです。

• 制御理論系のやり方をおさえた実装は、MATLABのSystem Identification TOOLBOXというものであり、お⾦がかかるかも。

• Rや他の言語の実装はあまり触っていない/調べていなくてよくわかりません。

15/20

AR等の時系列モデリング

今後の入門1(モデリング)

• ARMA等の時系列分析⼿法の状態空間モデル表現を整理していきたい(様々な時系列分析⼿法を結局は押さえないといけない︕)

16/20

AR、MA、ARMA、ARIMA

ARCH、GARCH、VEC、DVEC、CCC、DCC、CCgirls

SV、ARFIMA、ARIMAX、東MAX、MAX

VAR、VMA、VARMA 、 VARIMA

TAR、SETAR、ST、LSTAR、RATS & STAR

・・・

状態空間モデル

時系列分析手法

状態空間モデル

AR

MA

ARMA

・・・

部分同定法等

今後の入門2(モデリング)

• 直接的に状態空間モデルを作成する⼿法の理解

17/20

MOESP法(Multivariable Output Error State sPace)

4SID法(Numerical Algorithm for Subspace State Space System

IDentificaton 4つのS)

状態空間モデル

これらを理解するのに、結構な量の線形代数の計算を勉強しないと︕

参考資料1. 時系列解析入門 北川源四郎2. システム同定の基礎 足⽴修一3. カルマンフィルタの基礎 足⽴修一・丸⽥一郎4. 予測にいかす統計モデリングの基礎 樋口知之5. ビッグデータ時代のマーケティング 佐藤忠彦・樋口知之6. はじめての現代制御理論 佐藤和也・下本陽一・熊澤典良7. システム同定 -部分空間法からのアプローチ- 片山徹

18/20