実習 6.6 コインの出方が表に偏ってると仮定して、事前確率は p(θ) ∝ θ2 つまり「θ の二乗に比例する」とした。観測データは 4 回試行して 2 回表。事後確率から、次に表が出る確率を求める。
> binwidth <- 1/1000
> thetagrid <- seq(from=binwidth/2, to=1-binwidth/2,by=binwidth)
> relprob <- thetagrid2
> prior <- relprob/sum(relprob)
> post <- BernGrid(thetagrid, prior, c(rep(1,2),rep(0,2)))
「次に表が出る確率」はグラフに表示されている通り 0.625 で、以下のように求める。
> (predprob <- sum(thetagrid*post))
[1] 0.625
以下の thetagrid, post の内容から、sum(thetagrid*post) してる意味がわかる。
> length(thetagrid); head(thetagrid)
[1] 1000
[1] 0.0005 0.0015 0.0025 0.0035 0.0045 0.0055
> length(post); head(post)
[1] 1000
[1] 6.555939e-15 5.299690e-13 4.081080e-12 1.564646e-11 4.266993e-11 9.502757e-11
最初「1 じゃないのか?」と誤解したが、post の合計が 1 です。
> sum(post); sum(thetagrid)
[1] 1
[1] 500
課題 6.7 コインの出方が表か裏に偏ってると仮定して、二つの事前確率を p(θ|M1) ∝ θ2 、 p(θ|M2) ∝ θ2 、そのモデルである確率同じ( p(M1) = p(M2) )とした。8 回試行して 6 回表が出た。二つの事後確率を評価する。
> binwidth <- 1/1000
> thetagrid <- seq(from=binwidth/2, to=1-binwidth/2,by=binwidth)
> relprob <- thetagrid2
> prior <- relprob/sum(relprob)
> post <- BernGrid(thetagrid, prior, c(rep(1,6),rep(0,2)))
> relprob <- (1-thetagrid)2
> prior <- relprob/sum(relprob)
> post <- BernGrid(thetagrid, prior, c(rep(1,6),rep(0,2)))
二つの p(D) より
> 0.00606/0.0013
[1] 4.661538
事前には M1 か M2 である確率は五分五分だったが、Bayes' Factor は「4.66 M1 が好ましい」としている。つまり Bayes' Factor は 事後確率の odd(オッヅ)でもある。
注意:単純に p(D|M1) / p(D|M2) が事後確率の odds にならない場合もある。
「実習6.8 重要な『同意できる事前確率』」


0 件のコメント:
コメントを投稿