Mais conteúdo relacionado Semelhante a Data assim r (20) Data assim r2. Agenda
データ同化とは
データ同化の応用範囲
状態空間モデル
予測と平滑化
カルマンフィルタ
– sspirパッケージ
– いろいろなパッケージ
パーティクルフィルタ
– RcppSMCパッケージ
– 非線形力学系とフィルタ
まとめと課題
Reference
2012/9/8 2
3. 自己紹介
@xiangze750
LSIメーカー勤務
画像圧縮、画像処理
普段使うプログラミング言語
C++, Verilog HDL, Perl, VBA, R
普段使う自然言語
日本語、英語、中国語
2012/9/8 3
4. データ同化(Data Assimilation)とは
ある未知のパラメータを含んだ方程式に基づいたシミュレーションの結果
を実際の観測値を用いて補正する
Figure 1. The representation of the NINO3.4 SST (red and blue lines:
reproduced, black: observation). Coupled data assimilation (bottom panel)
reproduces the state of the 1990's much better than simulation (top panel).
http://www.jamstec.go.jp/drc/maps/e/kadai/clm/clm_or_ap4.html
2012/9/8 http://www.hzg.de/institute/coastal_research/cosyna/007914/index_0007914.html
4
5. データ同化の応用範囲
流体力学的計算(Navier-Stokes 方程式に従う)
– 数値的天気予報
– 気候モデル(大気海洋結合モデル、エルニーニョの予測)
– 津波のシミュレーション
– 放射性物質の拡散予測http://www.cs.kyoto-u.ac.jp/wp-
content/uploads/2012/06/03ishikawa.pdf
その他
– 遺伝子発現調節モデル
予測対象のメカニズム(運動方程式が)ある程度
わかっている。
未知なパラメータが存在する
2012/9/8 5
6. エルニーニョの予測
海洋研究開発機構と東京大学によるエルニーニョの予測
• 大気と海洋の相互作用によって海水温度の深度分布を未知のパラメータ
として推定し、予測に取り入れた。
http://www.jamstec.go.jp/j/about/press_release/20100222/
2012/9/8 6
http://www.jamstec.go.jp/drc/maps/e/kadai/clm/clm_or_ap4.html
8. 遺伝子発現調節モデル
Modeling and Estimation of Dynamic EGFR Pathway
by Data Assimilation Approach Using Time Series
Proteomic Data
http://www.jsbi.org/pdfs/journal1/GIW06/GIW06F032.pdf
2012/9/8 http://www.jsbi.org/pdfs/journal1/GIW06/GIW06F032Suppl.html
8
9. データ同化の種類
逐次型 非逐次型
代表的手法 アンサンブルカルマンフィルタ 4次元変分法
解 周辺分布 状態ベクトル列の状態
ベクトルの事後
数理的観点から 統計的推測 最適化
シミュレーションの規模 中〜小規模 超大規模も可能
使われている領域 すべて 気象、海洋予報
プログラムの実装 プラグイン化可能 エキスパートが最適な
最適化手法を実装
High performance スカラー並列計算機向き ベクトル計算器向き
computing
シミュレーションモデル 尤度により可能 困難
の比較
今回は逐次型を説明します。 樋口知之 編著 データ同化入門 p.14
2012/9/8 9
10. 状態空間モデル
システムモデル(発展方程式)
– n次元時系列xt=(x0t,x1t,x2t,...,xnt)
– 予測対象(隠れた変数) xt
一般の場合
線形の場合
– モデル内の未知の要素 z (確率変数)
真の発展方程式にはあるが値が未知のためシミュレーションモ
デルに含むことができない変数を確率変数(システムノイズ)と
して入れこむ。
2012/9/8 10
11. 状態空間モデル
観測モデル
– 観測にはノイズがつきもの
– 確率変数wtとしてノイズを表現する
一般の場合
線形の場合
システムモデル&観測モデル
真の発展方程式にあってシミュ
レーションモデルに含めない変数
を確率変数(システムノイズ)として
入れこむ
2種類のノイズが含まれる
2012/9/8 11
13. 予測分布と計算法
逐次データ同化とは事後分布p(xt|y1:t-1)の推定
予測分布
フィルタ分布
平滑化分布
x0 x1 x2 x3 xt-1 xt xT-1 xT
…. ….
y0 y1 yt-1 yt yT-1 yT
2012/9/8 13
14. 予測分布の計算手法
ベイズの定理を用いる
xt-1 xt
矢印を逆にたどって分布p(xt|y1:t-1)を推
測する。
yt-1 yt
2012/9/8 14
15. 予測分布の計算手法
予測分布
xt-1の導入
条件付き確率の式
Xtとy1:t-1の独立性(グラフでつながって
いない)
2012/9/8 15
16. 予測分布の計算手法
フィルタ分布
ベイズの定理(yt)
条件付き確率の式(xt)
ytとy1:t-1の独立性(グラフでつながって
いない)
Xtの導入
条件付き確率の式(xt,分母)
2012/9/8 16
17. 平滑化(smoothing)
xtより将来の一定期間の観測値を用いて推測する
– 固定区間平滑化
– 固定点平滑化
– 固定ラグ平滑化
• t:t+Lの区間を状態ベクトルとする
2012/9/8 17
18. 予測分布の代表的計算法
カルマンフィルタ
– 線形モデル、ガウシアンノイズの場合のみ
アンサンブルカルマンフィルタ
– 非線形、ガウシアンノイズに対応
パーティクル(粒子)フィルタ
– 非線形モデル、非ガウシアンノイズにも対応
2012/9/8 18
19. カルマンフィルタ
線形モデル、ガウシアンノイズの場合平均、分散が積分計
算を実行することなく解析的に求まる。
– モデル
– Prediction step
– Update(filter) step
2012/9/8 19
20. カルマンフィルタ
Prediction step
Update(filter) step
Pk xkの共分散行列
Sk ykの共分散行列
Kk カルマン行列(Pk)のupdateで用い
られる行列
2012/9/8 20
21. カルマンフィルタ
Prediction stepとUpdate(filter) step
2012/9/8 21
22. カルマンフィルタ
時系列解析との関係
– auto.arma関数の出力に推定されたカルマンフィ
ルタのパラメータが保存されている。
– ARMAモデル
– KalmanLike,KalmanRun,
KalmanSmooth,KalmanForecast関数が利用可能
http://www.slideshare.net/hamadakoichi/r-3836773
2012/9/8 22
23. カルマンフィルタ
library( forecast )
tsdisplay( BJsales )
r<-auto.arima(BJsales)
plot( forecast( r, h=10 ) ) #予測値(右図)
r$model #Kalman行列などが表示される。
KalmanForecast(10,r$model) #予測
#特定係数のarmaモデルによるシミュレー
ション
simr<-armaSim( model=list( ar=c( 0.3,
-0.3 ), d=2,ma=c( 0.5, 0.7 ) ), n=200)
#尤度の推定
r2<-KalmanLike(simr,r$model) http://itbc-world.com/R_fm_library/r%E3%81%AE
%E7%B5%B1%E8%A8%88%E9%96%A2%E6%95%B0/arim
a%E3%83%A2%E3%83%87%E3%83%AB/
2012/9/8 23
24. いろいろなカルマンフィルタパッケージ
sspirパッケージ
– 非ガウシアンノイズ(Poisson,二項分布)
– Linear
KFASパッケージ
– 非ガウシアンノイズ、Linear
http://stat-www.berkeley.edu/~brill/Stat248/kalmanfiltering.pdf
http://hosho.ees.hokudai.ac.jp/~kubo/ce/TimeSeriesData.html
http://www.jstatsoft.org/v16/i01/paper
2012/9/8 24
25. いろいろなカルマンフィルタパッケージ
相違点
– 平滑化の実装
– 非ガウシアンノイズへの対応
– 逆行列の計算方法
2012/9/8 http://stat-www.berkeley.edu/~brill/Stat248/kalmanfiltering.pdf
25
26. パーティクルフィルタ
事後確率分布を多数の”粒子”で近似する
利点
– 非ガウシアンノイズ、非線形モデルに対応できる。
– 並列化に向いている。
欠点
– 粒子数が少ないと分布をうまく近似できない
– 多くの粒子が一カ所に集まる退化と呼ばれる現象が起こる。
応用例
物体追跡(ロボットの位置推定など)
2012/9/8 26
31. RcppSMC
3種類のモデルのパーティクルフィルタが使用できる(らし
い)。
– blockpfGaussianOpt
– Linear
– Nonlinear
sim <- simGaussian(len=250)
res <- blockpfGaussianOpt(sim$data,lag=5,plot=TRUE)
http://d.hatena.ne.jp/teramonagi/20120411/1334153387
2012/9/8 31
32. MCMCの実行
パーティクルフィルタはモンテカルロ法の一種と言える。
MCMCpack
– 使用できるモデルは限定されている。
R2winBUGS
– WinBUGS(or OpenBUGS)を呼び出している。
RcppBUGS
– BUGSのc++実装、
– http://www.rinfinance.com/agenda/2012/talk/WhitArmstrong.pdf
2012/9/8 32
33. MCMCの実行
RcppBUGSの記述例
http://www.rinfinance.com/agenda/2012/talk/WhitArmstrong.pdf
BUGS言語で隠れマルコフモデルを記述するのは大変そう。。。
2012/9/8 33
34. パーティクルフィルタの実施例
モデル Lorenz方程式
Sigma=10, b=8/3 r<=24 固定点
Sigma=10, b=8/3 24<r<=300 ストレンジアトラクタ
Sigma=10, b=8/3 r>330 リミットサイクル
2012/9/8 34
35. パーティクルフィルタの実施例
双子実験
– 観測値の代わりにシミュレーションを行う。
– パーティクルフィルタなどの手法の検証ができる。
Yt
実験データ取得用のシミュレーション データ同化用シミュレーション
2012/9/8 35
40. まとめと課題
データ同化の概念とその応用範囲を紹介した。
逐次データ同化の手法としてカルマンフィルタ、パーティクルフィルタ
を紹介した。
– カルマンフィルタは複数のパッケージで利用できる。
– RではパーティクルフィルタをRcppSMCで利用することが
可能
– 非線形モデルにおけるパーティクルフィルタを実装し動作の
確認を試みた。
– 平滑化の実装が課題
2012/9/8 40
41. Reference
ブログ
– http://d.hatena.ne.jp/teramonagi/20120411/1334153387
スライド
– http://www.slideshare.net/horihorio/howtousetimeseries
– http://www.slideshare.net/hamadakoichi/r-3836773
論文
– http://stat-www.berkeley.edu/~brill/Stat248/kalmanfiltering.pdf
本
– データ同化入門
– 予測に生かす統計モデリングの基本
今回使用したコード
• https://github.com/xiangze/particlefilter_dynamical
2012/9/8 41