Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Data assim r

9,970 views

Published on

Data assimilation & filtering in R

  • Be the first to comment

Data assim r

  1. 1. データ同化とフィルタの紹介 2012/9/8 Tokyo.R #26 @xiangze7502012/9/8 1
  2. 2. Agenda データ同化とは データ同化の応用範囲 状態空間モデル 予測と平滑化 カルマンフィルタ – sspirパッケージ – いろいろなパッケージ パーティクルフィルタ – RcppSMCパッケージ – 非線形力学系とフィルタ まとめと課題 Reference2012/9/8 2
  3. 3. 自己紹介 @xiangze750 LSIメーカー勤務画像圧縮、画像処理普段使うプログラミング言語C++, Verilog HDL, Perl, VBA, R普段使う自然言語日本語、英語、中国語2012/9/8 3
  4. 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 1990s 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. 5. データ同化の応用範囲 流体力学的計算(Navier-Stokes 方程式に従う) – 数値的天気予報 – 気候モデル(大気海洋結合モデル、エルニーニョの予測) – 津波のシミュレーション – 放射性物質の拡散予測http://www.cs.kyoto-u.ac.jp/wp- content/uploads/2012/06/03ishikawa.pdf その他 – 遺伝子発現調節モデル 予測対象のメカニズム(運動方程式が)ある程度 わかっている。 未知なパラメータが存在する2012/9/8 5
  6. 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
  7. 7. 遺伝子発現調節モデルどのようにしてしましまが形成されるのか – ショウジョウバエの体節形成に関わる遺伝子 http://en.wikipedia.org/wiki/Drosophila_embryoge nesis 2012/9/8 7
  8. 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.pdf2012/9/8 http://www.jsbi.org/pdfs/journal1/GIW06/GIW06F032Suppl.html 8
  9. 9. データ同化の種類 逐次型 非逐次型代表的手法 アンサンブルカルマンフィルタ 4次元変分法解 周辺分布 状態ベクトル列の状態 ベクトルの事後数理的観点から 統計的推測 最適化シミュレーションの規模 中〜小規模 超大規模も可能使われている領域 すべて 気象、海洋予報プログラムの実装 プラグイン化可能 エキスパートが最適な 最適化手法を実装High performance スカラー並列計算機向き ベクトル計算器向きcomputingシミュレーションモデル 尤度により可能 困難の比較 今回は逐次型を説明します。 樋口知之 編著 データ同化入門 p.14 2012/9/8 9
  10. 10. 状態空間モデル システムモデル(発展方程式) – n次元時系列xt=(x0t,x1t,x2t,...,xnt) – 予測対象(隠れた変数) xt 一般の場合 線形の場合 – モデル内の未知の要素 z (確率変数) 真の発展方程式にはあるが値が未知のためシミュレーションモ デルに含むことができない変数を確率変数(システムノイズ)と して入れこむ。2012/9/8 10
  11. 11. 状態空間モデル 観測モデル – 観測にはノイズがつきもの – 確率変数wtとしてノイズを表現する 一般の場合 線形の場合 システムモデル&観測モデル 真の発展方程式にあってシミュ  レーションモデルに含めない変数 を確率変数(システムノイズ)として 入れこむ  2種類のノイズが含まれる2012/9/8 11
  12. 12. グラフィカルモデル確率変数間の関係を矢印で結んだもの時系列モデルの場合は変数が鎖状に並ぶ(隠れマルコフモデル)逐次データ同化とは事後分布p(xt|y1:t-1)の推定 x0 x1 x2 x3 xT-1 xT …. y0 yT-1 yT 確率変数  x (隠れ変数)  y 観測された変数 2012/9/8 12
  13. 13. 予測分布と計算法 逐次データ同化とは事後分布p(xt|y1:t-1)の推定 予測分布 フィルタ分布 平滑化分布 x0 x1 x2 x3 xt-1 xt xT-1 xT …. …. y0 y1 yt-1 yt yT-1 yT2012/9/8 13
  14. 14. 予測分布の計算手法 ベイズの定理を用いる xt-1 xt 矢印を逆にたどって分布p(xt|y1:t-1)を推 測する。 yt-1 yt2012/9/8 14
  15. 15. 予測分布の計算手法 予測分布 xt-1の導入 条件付き確率の式 Xtとy1:t-1の独立性(グラフでつながって いない)2012/9/8 15
  16. 16. 予測分布の計算手法フィルタ分布 ベイズの定理(yt) 条件付き確率の式(xt) ytとy1:t-1の独立性(グラフでつながって いない) Xtの導入 条件付き確率の式(xt,分母)2012/9/8 16
  17. 17. 平滑化(smoothing) xtより将来の一定期間の観測値を用いて推測する – 固定区間平滑化 – 固定点平滑化 – 固定ラグ平滑化 • t:t+Lの区間を状態ベクトルとする2012/9/8 17
  18. 18. 予測分布の代表的計算法 カルマンフィルタ – 線形モデル、ガウシアンノイズの場合のみ アンサンブルカルマンフィルタ – 非線形、ガウシアンノイズに対応 パーティクル(粒子)フィルタ – 非線形モデル、非ガウシアンノイズにも対応2012/9/8 18
  19. 19. カルマンフィルタ 線形モデル、ガウシアンノイズの場合平均、分散が積分計 算を実行することなく解析的に求まる。 – モデル – Prediction step – Update(filter) step2012/9/8 19
  20. 20. カルマンフィルタ Prediction step Update(filter) step Pk xkの共分散行列  Sk ykの共分散行列  Kk カルマン行列(Pk)のupdateで用い  られる行列2012/9/8 20
  21. 21. カルマンフィルタ Prediction stepとUpdate(filter) step2012/9/8 21
  22. 22. カルマンフィルタ 時系列解析との関係 – auto.arma関数の出力に推定されたカルマンフィ ルタのパラメータが保存されている。 – ARMAモデル – KalmanLike,KalmanRun, KalmanSmooth,KalmanForecast関数が利用可能 http://www.slideshare.net/hamadakoichi/r-38367732012/9/8 22
  23. 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. 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/paper2012/9/8 24
  25. 25. いろいろなカルマンフィルタパッケージ 相違点 – 平滑化の実装 – 非ガウシアンノイズへの対応 – 逆行列の計算方法2012/9/8 http://stat-www.berkeley.edu/~brill/Stat248/kalmanfiltering.pdf 25
  26. 26. パーティクルフィルタ 事後確率分布を多数の”粒子”で近似する 利点 – 非ガウシアンノイズ、非線形モデルに対応できる。 – 並列化に向いている。 欠点 – 粒子数が少ないと分布をうまく近似できない – 多くの粒子が一カ所に集まる退化と呼ばれる現象が起こる。応用例 物体追跡(ロボットの位置推定など)2012/9/8 26
  27. 27. パーティクルフィルタ 処理の流れ2012/9/8 27
  28. 28. パーティクルフィルタ 処理の流れ2012/9/8 28
  29. 29. パーティクルフィルタ 処理の流れ2012/9/8 29
  30. 30. パーティクルフィルタ 処理の流れ2012/9/8 30
  31. 31. RcppSMC  3種類のモデルのパーティクルフィルタが使用できる(らし い)。 – blockpfGaussianOpt – Linear – Nonlinearsim <- simGaussian(len=250)res <- blockpfGaussianOpt(sim$data,lag=5,plot=TRUE) http://d.hatena.ne.jp/teramonagi/20120411/1334153387 2012/9/8 31
  32. 32. MCMCの実行 パーティクルフィルタはモンテカルロ法の一種と言える。 MCMCpack – 使用できるモデルは限定されている。 R2winBUGS – WinBUGS(or OpenBUGS)を呼び出している。 RcppBUGS – BUGSのc++実装、 – http://www.rinfinance.com/agenda/2012/talk/WhitArmstrong.pdf2012/9/8 32
  33. 33. MCMCの実行 RcppBUGSの記述例http://www.rinfinance.com/agenda/2012/talk/WhitArmstrong.pdf BUGS言語で隠れマルコフモデルを記述するのは大変そう。。。2012/9/8 33
  34. 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. 35. パーティクルフィルタの実施例  双子実験 – 観測値の代わりにシミュレーションを行う。 – パーティクルフィルタなどの手法の検証ができる。 Yt実験データ取得用のシミュレーション データ同化用シミュレーション 2012/9/8 35
  36. 36. パーティクルフィルタの実施例時系列、分布(N=100,r=4,固定点) Yt実験データ取得用のシミュレーション データ同化用シミュレーション 収束している https://github.com/xiangze/particlefilter_dynamical2012/9/8 36
  37. 37. パーティクルフィルタの実施例時系列、分布(N=100,r=4,固定点)実際の値とparticleの平均値との差 particleの分散 収束している https://github.com/xiangze/particlefilter_dynamical2012/9/8 37
  38. 38. パーティクルフィルタの実施例時系列、分布(N=100,r=28,ストレンジアトラクタ) Yt実験データ取得用のシミュレーション データ同化用シミュレーション 収束している??? https://github.com/xiangze/particlefilter_dynamical2012/9/8 38
  39. 39. パーティクルフィルタの実施例時系列、分布(N=100,r=28,ストレンジアトラクタ)実際の値とparticleの平均値との差 particleの分散絶対値が大きい 時折particleが大きくばらける場合がある。 パーティクルフィルタの性能を高める方法 に関しては「データ同化入門」の7章 融合粒 2012/9/8 子フィルタも参照 39
  40. 40. まとめと課題 データ同化の概念とその応用範囲を紹介した。 逐次データ同化の手法としてカルマンフィルタ、パーティクルフィルタ を紹介した。 – カルマンフィルタは複数のパッケージで利用できる。 – RではパーティクルフィルタをRcppSMCで利用することが 可能 – 非線形モデルにおけるパーティクルフィルタを実装し動作の 確認を試みた。 – 平滑化の実装が課題2012/9/8 40
  41. 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_dynamical2012/9/8 41

×