gepuro.net
gepulog

データ分析エンジニアによる備忘録的ブログ

Rstanでワイブル分布のパラメータ推定

Rstanでワイブル分布のパラメータ推定をしてみる。打切りを考慮するにはどうしたら良いのだろうか? Stan Modeling Language User's Guide and Reference Manual, v2.5.0の83ページ辺りを読めば出来そう。

weibull.stan

data {
  int<lower=0> J; // number of data 
  real<lower=0> tt[J]; // time
}
parameters {
  real<lower=0> m; 
  real<lower=0> eta;
}
model {
  for(j in 1:J)
    tt[j] ~ weibull(m, eta);
}

weibull.R

library(rstan)
data.ls <- list(J = 1000,
                tt = rweibull(1000, shape = 2, scale = 100))

fit <- stan(file = 'weibull.stan', data = data.ls, 
            iter = 1000, chains = 4)

結果

> fit
Inference for Stan model: weibull.
4 chains, each with iter=1000; warmup=500; thin=1; 
post-warmup draws per chain=500, total post-warmup draws=2000.

         mean se_mean   sd     2.5%      25%      50%      75%    97.5% n_eff Rhat
m        2.02    0.00 0.05     1.93     1.99     2.02     2.05     2.12   946    1
eta    101.42    0.05 1.67    98.32   100.24   101.39   102.60   104.82  1007    1
lp__ -5197.22    0.04 0.97 -5199.81 -5197.58 -5196.91 -5196.55 -5196.28   735    1

Samples were drawn using NUTS(diag_e) at Wed Dec 03 23:23:05 2014.
For each parameter, n_eff is a crude measure of effective sample size,
and Rhat is the potential scale reduction factor on split chains (at 
convergence, Rhat=1).

似てる記事

似てない記事