サンプリングの妥当性検証

サンプリングの妥当性検証#

\(\hat R\)(R-hat, Gelman–Rubin統計量)#

R-hatは複数チェーン間の分散と各チェーン内の分散の比によって定義される。

\[ \hat{R} = \sqrt{\frac{チェーン間の分散}{チェーン内の分散}} \]

直感的には「チェーン同士が同じ分布を見ているか」。

\(\hat R \le 1.01\) であれば収束しているとみなされる

\(\hat R\)(R-hat, Gelman–Rubin統計量)

\(j\ (j=1,\cdots,m)\) 本目のチェーンの \(i\ (i=1,\cdots,n)\) 番目サンプルの値を \(\theta_{ij}\) と表す。 チェーン\(j\)の平均 \(\bar{\theta}_{. j}\) と全体平均 \(\bar{\theta}_{. .}\) をそれぞれ次のように定義する。

\[ \bar{\theta}_{. j}=\frac{1}{n} \sum_{i=1}^n \theta_{i j} , \quad \bar{\theta}_{. .}=\frac{1}{m} \sum_{j=1}^m \bar{\theta}_{. j} \]

チェーン内分散(within-chain variance)

各チェーンの標本分散

\[ s_j^2=\frac{1}{n-1} \sum_{i=1}^n\left(\theta_{i j}-\bar{\theta}_{. j}\right)^2 \]

の平均を\(W\)とする。

\[ W=\frac{1}{m} \sum_{j=1}^m s_j^2 \]

チェーン間分散(between-chain variance)

\[ B=\frac{n}{m-1} \sum_{j=1}^m\left(\bar{\theta}_{. j}-\bar{\theta}_{. .}\right)^2 \]

※係数 \(n\) は「チェーン平均の分散」を元のスケールに戻すため。

事後分散の推定量

有限標本補正を入れた事後分散の推定量

\[ \hat{V}=\frac{n-1}{n} W+\frac{1}{n} B \]
  • \(W\):チェーン内のばらつき

  • \(B\):チェーン間のばらつき

R-hat

\(\hat{R}\)統計量は次のように定義される

\[ \hat{R}=\sqrt{\frac{\hat{V}}{W}} \]

チェーンが別々の領域を探索しているならチェーン間分散が多くなり\(B>W\) となり \(\hat{R} > 1\)となる。

各チェーンが同じ分布をサンプリングしているなら \(B\approx W\) となり \(\hat{R} \approx 1\)となる

古典的 \(\hat R\) の問題点として、

  1. 非対称分布・重い裾に弱い

  2. 平均と分散しか見ていない

があった。

そこで

  1. rank-normalization: サンプルを順位変換 → 正規スケール

  2. folding: 中心からの距離を使い、裾の混合を検出

  3. split chains: 各チェーンを前半・後半に分割し \(m\) を倍増

といった改良がされている(Stan/PyMCなど今のライブラリはこちらを使っている)

[1903.08008] Rank-normalization, folding, and localization: An improved \(\widehat{R}\) for assessing convergence of MCMC