RからADMBへ

最近、世の中は「stochastic」だよ思うひとが増えているらしい。僕もそう思う。かならず、なんだかなランダムなプロセスがある。いままでRをつかって、モデルの開発などをしていたが、限界を感じている。まず、あまりベース法に向いていないことと、複雑なstochasticモデルを簡単に作れないことがRの欠点だ。

それで、ADMBというものを使い始めている。これはC++と言う言語をもとにした開発環境。久しぶりにC言語をつかったな。

二日かけて、やっとモデルの収束に成功したので、ここで一部の結果を発表。赤線がフィットしたモデル。解析ようの黒線はシミュレーションデータ。
モデルは常微分法定式です: f(x1,x2,x3,y) = theta(1) * tanh(theta(2)/theta(1) * x1) - theta(3) * C1^(x2 - C2) + theta(4) * (C3 - y)
C1とC2とC3は定数。theta(1,2,3,4)は求めたいパラメーター。xとyは関数です。ちなみに、Runge-Kutta法で計算しました。



theta(1,2,3,4) = {3.8, 0.0006, 0.25, 0.0025}と計算され、シミュレーションモデルに使ったのは{4.3, 0.0005, 0.27, 0.0025}だったので、悪くはない。次はベーズ法をつかって、パラメーターなどの信頼度の計算をプログラムにくめばエラーもモデルに反映でるはずだ。

コメント

Ryo Kawabe さんの投稿…
Runge-Kutta法久しぶりに聞きました。確率過程が重要なんだけど、ランダムが全てではないらしい。そのうち、K田君を呼びますので、一緒に勉強しましょう。
Unknown さんの投稿…
僕もそのように思っている。K田君の話をもっと聞きたいね。

このブログの人気の投稿

RStudioとggplot():プロットができないとき

光合成関連の単語

大村湾調査!! ~海藻・生き物編~