Rstan Wonderful R

P16

事後分布 \(p(\theta | Y)\)の値が最大になる点\(\theta^*\)を事後確率最大推定値 (maximum a posteriori estimate)と呼ぶ.略してMAP推定値 (MAP estimate).

我們把能夠將事後概率分布取極大值的參數點 \(\theta^*\) 稱爲事後概率的最大似然估計值 (maximum a posteriori estimate),簡稱 MAP估計值 (MAP estimate)。

P19

統計建模的一般順序

  • 確定分析目的
  • 確定數據分布
  • 想象數據產生本身的機制:思考數據與數據之間可能的關系
  • 寫下你所認爲的數據模型的數學表達式
  • 用 R 模擬(simulation)並確認前一步寫下的數學模型的性質,特點
  • 用 Stan 實際進行模型參數的推斷
  • 獲得推斷結果,解釋其事後概率分布的意義,繪制易於理解的模型示意圖
  • 繪制成功之後的模型示意圖和最先使用的模型之間進行比對,重新查缺補漏

P23

ただいたずらにモデルを複雑化させるのは解釈のしにくさを招く.

P30

最初にmodel ブロックの尤度の部分(と事前分布の部分)を書く.その尤度の部分に登場した変数のうち,データの変数をdataブロックに,残りの変数をparametersブロックに書いていく.

Stan的基本文法構成

data {
 數據描述
}

parameters {
 想要進行MCMC事後樣本採集的參數描述
}

model {
 p(Y|theta) 似然的描述
 先驗概率分布 p(theta) 的描述
}

把下面的模型

\[ \begin{aligned} Y[n] & \sim \text{Normal}(\mu, 1) \;\; n = 1, \dots, N \\ \mu & \sim \text{Normal}(0, 100) \end{aligned} \]

翻譯成爲 Stan 模型語言是:

data {
  int N;
  real Y[N];
}

parameters {
  real mu;
}

model {
  for (n in 1:N) {
  Y[n] ~ normal(mu, 1);
  }
  mu ~ normal(0, 100)
}

其中我們按照實際模型書寫的順序 model -> data -> parameter 來逐個解釋:

  • model 模塊中 for (n in 1:N) 開始的循環部分(三行)對應數學模型的 $Y[n] (, 1) n = 1, , N $ 部分。
  • Stan 語言中,每一行描述的結尾需要用分號 ; 來結束。
  • mu ~ normal(0,100) 則對應數學模型中寫的先驗概率 \(\mu \sim \text{Normal}(0, 100)\) 部分。這裏給均值的先驗概率分佈是一個方差很大的無信息先驗概率分佈 (noninformative prior)。事實上在 Stan 軟件語言中,如果不特別指出先驗概率分佈,系統會默認給參數以無信息的先驗概率分佈,這樣即使沒有這一行,模型也是可以跑的
  • data 模塊中寫明的是 model 模塊中描述的模型將要使用的數據。它包括宣示數據的個數(樣本量 \(N\)),以及數據本身。其中 int N 意爲樣本量的數量是整數個 (integer),real Y[N] 則宣示實數有 N 個作爲數據。
  • parameter 模塊是告訴軟件需要採樣且關注的未知參數 (parameter) 是 mu

Related

comments powered by Disqus