data, parameters, model などのブロックの意味と使い方

Stan のブロック

Stan コードは、ブロックの中に記述する。Stan で定義されているブロックには、data, transformed data, parameters, transformed parameters, generated quantities および model がある。

dataモデル式に含まれる変数を定義する。data ブロックで、変数の名前、変数の型、変数の制約を定義する。
transformed datadata ブロックで定義されている変数を線形変換などを施す場合は、transformed data ブロックで、変換方法などを定義する。
parametersモデル式に含まれる(これからサンプリングを通して求めたい)パラメーターを定義する。
transformed parametersparameters ブロックで定義されているパラメーターを線形変換などを施す場合は、transformed parameters ブロックで、変換方法などを定義する。
generated quantitiesサンプリングで得られたパラメーターを利用してさらに何かの計算を行う場合は、generated quantities ブロックに記述する。
modeldataparameters などのブロックで定義された変数を利用して、モデル式を記述する。Stan は、model ブロックに記述されるモデル式に基づいて、サンプリングによりパラメーターを推定していく。