放送大学「心理統計法(‘17)」第5章 第6章 その1
授業ではrstanパッケージを使ってますが、MCMCpackパッケージを使ってみます。初学者ですので間違いが多々あると思います。
(Rスクリプトはここ)
早稲田大学文学部文学研究科 豊田研究室  
 (参考)
ベイジアンMCMCによる統計モデル
Using the ggmcmc package
Bayesian Inference With Stan ~番外編~ 
Exercise 2: Bayesian A/B testing using MCMC Metropolis-Hastings
政治学方法論 I
標準偏差が共通するモデル(EQU)
| 
 | 
 | 
Iterations = 2001:201991
Thinning interval = 10
Number of chains = 5
Sample size per chain = 20000   
- Empirical mean and standard deviation for each variable, 
 plus standard error of the mean:- Mean SD Naive SE Time-series SE 
 [1,] 32.755 0.5304 0.0016773 0.002084
 [2,] 31.044 0.5299 0.0016756 0.002077
 [3,] 2.351 0.2812 0.0008892 0.001196
- Quantiles for each variable: - 2.5% 25% 50% 75% 97.5% 
 [1,] 31.707 32.404 32.756 33.105 33.802
 [2,] 29.999 30.695 31.045 31.395 32.092
 [3,] 1.878 2.152 2.324 2.519 2.976
| 
 | 
 | 
Potential scale reduction factors:
   Point est. Upper C.I.
[1,]          1          1
[2,]          1          1
[3,]          1          1  
Multivariate psrf
1
| 
 | 
 | 
  var1     var2     var3
64832.32 65093.17 55375.97   
data.frame 作成、テキストにあわせた出力にするためにdata.frame ryou を作成
| 
 | 
 | 
確率:mu1>mu2 : mu2>mu1 ; mu1-mu2>1
| 
 | 
 | 
[1] 0.98817
| 
 | 
 | 
[1] 0.01183
| 
 | 
 | 
[1] 0.83177
| 
 | 
 | 

| 
 | 
 | 

事後予測分布
| 
 | 
 | 
| EAP | post.sd | 2.5% | 5% | 50% | 95% | 97.5% | |
|---|---|---|---|---|---|---|---|
| mu1 | 32.76 | 0.53 | 31.71 | 31.88 | 32.76 | 33.63 | 33.80 | 
| mu2 | 31.04 | 0.53 | 30.00 | 30.17 | 31.05 | 31.91 | 32.09 | 
| sigma | 2.35 | 0.28 | 1.88 | 1.94 | 2.32 | 2.85 | 2.98 | 
| mu1_mu2 | 1.71 | 0.75 | 0.24 | 0.49 | 1.71 | 2.94 | 3.18 | 
| x1aste | 32.76 | 2.42 | 27.97 | 28.79 | 32.76 | 36.71 | 37.53 | 
| x2aste | 31.04 | 2.43 | 26.23 | 27.05 | 31.05 | 35.01 | 35.82 | 
効果量
| 
 | 
 | 
   EAP post.sd    2.5%      5%     50%     95%   97.5%
  0.738   0.326   0.096   0.200   0.738   1.278   1.373 
| 
 | 
 | 
TRUE
0.95 
非重複度
| 
 | 
 | 
   EAP post.sd    2.5%      5%     50%     95%   97.5%
  0.759   0.098   0.538   0.579   0.770   0.899   0.915 
| 
 | 
 | 
   TRUE
0.57709 
優越率
直接比較
| 
 | 
 | 
   TRUE
0.69458 
事後分布から
| 
 | 
 | 
   EAP post.sd    2.5%      5%     50%     95%   97.5%
  0.694   0.079   0.527   0.556   0.699   0.817   0.834 
| 
 | 
 | 
   TRUE
0.25565 
閾上率
| 
 | 
 | 
   TRUE
0.58576 
| 
 | 
 | 
   EAP post.sd    2.5%      5%     50%     95%   97.5%
  0.584   0.086   0.411   0.439   0.586   0.721   0.744 
| 
 | 
 | 
   TRUE
0.02037  
「MCMCpack」でWAICを求める
以下は「linux」で行った方法です
この部分のコメントアウト # を取り除く
| 
 | 
 | 
WAICを求めるためには対数尤度が必要ですが、「MCMCpack」では対数尤度を返り値に加える方法がわかりません。(いまのところできない?)
しかし、パラメータ verbose=数値 を指定すれば、function value = -195.02600 と対数尤度が表示されます。
画面表示される代わりに
sink関数を使ってファイルに保存 
 -> 不要な行等を削除(gawkを使いました)し、ファイルに保存 
 ->  scan関数でRに対数尤度を取り込み 
 -> chain行のmatrixに変換 
 -> burnin期間の行を削除 
 -> 1列のmatrixに変換してloo::waic に入力  
(注) thin=verbose , burnin=thin*整数 とすること
で、結果は