8月頭に東京にベイズの集中講義を聞き行ってから、結局何をしていいかわからず「進捗ダメです」状態だったのですが、RStanで平均値・分散を計算をしている記事を見つけたので実行してみることに。
ぶっちゃけ、タイトルに書いてあることをしたいなら元記事見てもらった方が100万倍良いです。あくまでやったことの記録
新規作成:2017年12月2日最終更新:2017年12月2日StanとRを用いた統計モデル構築の基本について説明します。統計学の初歩からベイズ推論、Stanとい…
logics-of-blue.com
とりあえず普通に分散と平均値
dat <- read.csv("norm.csv", header=TRUE, na.strings=".") norm.mean <- mean(dat$D.1) norm.var <- sum((dat$D.1-mean(dat$D.1))^2)/(length(dat$D.1)) norm.mean norm.var
結果はこんな感じ。
ベイズ推定で
data{ int N; real length_data[N]; } parameters{ real mu; real<lower=0> sigma; } model{ for(i in 1:N) length_data[i] ~ normal(mu, sqrt(sigma)); }
写経したStanコード
library(rstan) model.norm<- stan_model("norm-mean.stan") fit_stan_1 <- stan(file = "norm-mean.stan",data = data_stan_1, seed = 1) fit_stan_1
通常のものとそんなに変わらない結果なのであってるかな?
まだ勉強始めたばっかなので、正解不正解もわからないという体たらく。
Source:Logics of Blue