タグ

Stanと微分方程式に関するabrahamcowのブックマーク (7)

  • Stanで常微分方程式: Taglibro de H

    Stan 2.5では常微分方程式が扱えるようになったということなので、マニュアルを参考にためしてみました。 生態学でつかわれるロジスティック式を解かせてみました。式は以下のようなもの: Nは個体数、rは内的増加率、Kは環境収容力(最大個体数)です。 Stanのコードは以下のように。 functions { real[] logistic(real t, real[] y, real[] theta, real[] x_r, int[] x_i) { real dNdt[1]; real r; real K; real N; r <- theta[1]; K <- theta[2]; N <- y[1]; dNdt[1] <- r * N * (K - N) / K; return dNdt; } } data { int<lower=1> T; real N0; real t0; real

  • SIRモデルからはじめる微分方程式と離散時間確率過程(前編) - StatModeling Memorandum

    今年はデング熱やエボラで騒がれました。そのような感染症の伝播によって感染人数がどのように変化するかを表すモデルはいくつかありますが、最もシンプルなものはSIRモデルというものです。Wikipediaの記事はこちら。 総人口をNとして、Sが感受性人口(まだ感染してないけど感染する可能性がある人)、Iが発症感染者人口、Rが除外人口(Iから治ってもう感染しない人)を表します。現時点のS,I,Rが与えられた時に、○○時間経った後のS,I,Rはどのようになるでしょうか?○○時間が短い極限をとって連続時間で変化のルールを記述したものを微分方程式と呼びます。SIRモデルでは次のような変化のルールに従うと仮定します。 上記のルールは化学反応式とほとんど同じです。SとIが接触したらある反応速度係数に従ってSもIになる。接触頻度はS*Iに比例するはず。I自体も単体で、ある反応速度係数に従ってRになる。これらを

    SIRモデルからはじめる微分方程式と離散時間確率過程(前編) - StatModeling Memorandum
  • 陽に解ける常微分方程式を使ったモデル - StatModeling Memorandum

    今回はデータの背後に簡単な(陽に解ける)常微分方程式で記述できるダイナミクスがあると仮定して、Stanでパラメータの推定を行いたいと思います。 状況として定期的に(例えば一年ごとに)サービスをリリースした場合を考えます。それらのサービスを使う総利用者数の時系列があるとします。そして各サービスともリリース直後は盛り上がってくるものの、じわじわと利用者が減っていくとします。今回はその利用者がどのサービス由来かわからないとして解析します(どのサービス由来か分かればもっと簡単にできます)。また今回のデータ取得期間はt=1:100でt=0,40,80に計3つの新規サービスをリリースしたと分かっているとし、グラフは以下のようになっているとします(縦軸の単位は[百人]とか)。 さてこの時系列を解析するうえで「リリース直後は盛り上がってくるものの、じわじわ減る」というダイナミクスをモデルに反映するのが大切

    陽に解ける常微分方程式を使ったモデル - StatModeling Memorandum
  • Stan: 常微分方程式をつかったモデルのパラメーター推定: Taglibro de H

    前回のつづきで、常微分方程式をつかったモデルのパラメーターを推定してみました。 ロジスティック式のrとKを推定してみます。以下のようなデータを生成しました。 set.seed(123) r <- 0.1 K <- 1000 ts <- seq(0, 30) N <- vector("integer", length(ts)) N[1] <- 100 for (t in seq_along(ts)[-1]) { N[t] <- rpois(1, N[t -1] + r * N[t - 1] * (K - N[t - 1]) / K) } このようなデータになります。 library(ggplot2) p <- ggplot(data.frame(ts, N)) p + geom_point(aes(x = ts, y = N)) + xlab("Time") このデータからrとKを推定するS

    Stan: 常微分方程式をつかったモデルのパラメーター推定: Taglibro de H
  • http://heartruptcy.blog.fc2.com/blog-entry-165.html

  • SIRモデルからはじめる微分方程式と離散時間確率過程(前編)

    R Advent Calendar 2014の12/20の記事になります。 今年はデング熱やエボラで騒がれました。そのような感染症の伝播によって感染人数がどのように変化するかを表すモデルはいくつかありますが、最もシンプルなものはSIRモデルというものです。Wikipediaの記事はこちら。 総人口をNとして、Sが感受性人口(まだ感染してないけど感染する可能性がある人)、Iが発症感染者人口、Rが除外人口(Iから治ってもう感染しない人)を表します。現時点のS,I,Rが与えられた時に、○○時間経った後のS,I,Rはどのようになるでしょうか?○○時間が短い極限をとって連続時間で変化のルールを記述したものを微分方程式と呼びます。SIRモデルでは次のような変化のルールに従うと仮定します。 上記のルールは化学反応式とほとんど同じです。SとIが接触したらある反応速度係数に従ってSもIになる。接触頻度はS*

    SIRモデルからはじめる微分方程式と離散時間確率過程(前編)
  • [Stan] 陽に解ける常微分方程式を使ったモデルの例

    今回はデータの背後に簡単な(陽に解ける)常微分方程式で記述できるダイナミクスがあると仮定して、Stanでパラメータの推定を行いたいと思います。 状況として定期的に(例えば一年ごとに)サービスをリリースした場合を考えます。それらのサービスを使う総利用者数の時系列があるとします。そして各サービスともリリース直後は盛り上がってくるものの、じわじわと利用者が減っていくとします。今回はその利用者がどのサービス由来かわからないとして解析します(どのサービス由来か分かればもっと簡単にできます)。また今回のデータ取得期間はt=1:100でt=0,40,80に計3つの新規サービスをリリースしたと分かっているとし、グラフは以下のようになっているとします(縦軸の単位は[百人]とか)。 さてこの時系列を解析するうえで「リリース直後は盛り上がってくるものの、じわじわ減る」というダイナミクスをモデルに反映するのが大切

    [Stan] 陽に解ける常微分方程式を使ったモデルの例
  • 1