12. 4.2.2 文法の基礎
数式 ブロック 書き方
Υ 𝑛 ~𝑁𝑜𝑟𝑚𝑎𝑙 𝜇, 1 model for( n in 1:N){
Y[n]~ normal(mu,1);
}
𝜇 ~ Normal(0,100) model mu ~ normal(0,100)
𝑛 = 1,2, … , 20 data int N;
Υ 𝑛 data real Y[N];
𝜇 parameters real mu;
data{
int N;
real Y[N];
}
parameters {
real mu;
}
model{
for( n in 1:N){
Y[n]~ normal(mu,1);
}
mu ~ normal(0,100)
}
Stanコード
数式とStanでの書き方の対応
13. 4.2.2 文法の基礎
記述 説明 型・他
int N 整数 プリミティブ型
real Y 連続値 プリミティブ型
real Y[N] 添え字をつけて宣言 配列
for( n in 1:N) ループ 1からNになるまでnを繰り返す -
mu ~ normal(0,100) 事前分布(mu)を生成
平均0、分散100の正規分布からmu
を生成する
-
Y[n]~ normal(mu,1); 尤度を生成
Y[n]は、平均mu、分散100の正規分布か
ら生成せれる
-
数式の解説
14. 4.2.3 コーディング規約
# 規約 サンプル
1 インデントする int N;
2 データを表す変数は頭は大文字 int N;
3 パラメータを表す変数の頭は小文字 real mu;
4 各ブロック間は一行開ける }
model{
5 変数名はアンダーバーでつなぐ snake_case
6 「~」や「=」の前後は1文字開ける mu ~ normal(0,100)
アヒル本の規約
40. Chapter4で使うrstanコマンド:stan
引数 初期値
file stan形式で記載されたモデルファイルを指定
model_name モデルを表す文字名を指定 anon_model
model_code stan形式で記載されたモデル文字列を指定 NA
fit Stan Fitファイルを指定。コンパイルされたモデルで実行するため高速 NA
data データブロックで指定された変数のリストを指定
pars サンプリング結果を出力するパラメータを指定 NA
chains chainのステップ数を指定 4
iter iterのステップ数を指定 2000
warmup warmupのステップ数を指定 Iter/2
seed 乱数ジェンレータの種を指定 random
StanでMCMCする
戻り値は、Stan Fitクラス
41. Chapter4で使うrstanコマンド:stan つづき
引数 説明 初期値
thin サンプリングを出力する頻度 1
init パラメータの初期値。デフォルトでは-2と2の間のランダムに生成 random
algorithm アルゴリズムを指定.NUTS,HMC,Fixed_param NUTS
sample_file sampleおよびquantileを出力する場合のファイル名を指定 NA
diagnostic_file 診断を出力する場合のファイル名を指定 NA
save_dso モデルをOSの共有メモリに保存するかを指定。次回高速に実行される TRUE
verbose デバッグ用のメッセージを出力するかを指定 FALSE
control サンプラーが制御するパラメータのリストを指定。 NULL
include parsで指定したパラメータを含むか含まないかを指定 TRUE
cores Chainを並列実行する時のコア数を指定。chain数まであげることができる 1
open_progress coresが1以上の場合にchainの進捗をファイルにリダイレクトするかを指定 TRUE?
boost_lib ベクトル演算ライブラリBoostのパスを指定(変更したい場合) NA
eigen_lib ベクトル演算ライブラリEigenのパスを指定(変更したい場合) NA
42. Chapter4で使うrstanコマンド:extract
引数 説明 初期値
object stanfitクラスを指定
pars 抽出するパラメータを指定する NULL
permuted 抽出結果にMCMCサンプルを混ぜ合わせて並べ替えるか
デフォルトでは、分析ミスを防止するために混ぜ合わせているとのこ
と
TRUE
inc_warmup 抽出結果にwarmup期間のMCMCサンプルを含めるか FALSE
include Parsで指定したパラメータを抽出結果に含めるか、除外するか TRUE
Stan fitクラスからMCMCサンプルの結果をえる. P47,P51
戻り値は、名前付きリスト