BDA3の2.11 Exercisesの9を解く。 リンクはBayesian Data Analysis。
Setting parameters for a beta prior distribution
θの事前分布はBeta(α,β)分布に従うとする。その平均は0.6であり、標準偏差は0.3である。
αとβの値は何になるか?
本文(A.3)より、
今、より、
aplusb=rationalize(0.6*(1-0.6))//rationalize(0.3)^2-1
5//3
α+β=5/3である。 また、引き続き本文(A.3)より、
α=aplusb*0.6
β=aplusb*(1-0.6)|>rationalize
(α,β)
(1.0, 2//3)
従って、α=1、β=2/3である。
using Distributions, StatsPlots
prior_dist=Beta(α,β)
plot(prior_dist,yrotation=90,label="Beta(α=1,β=2/3)")
savefig(joinpath(@OUTPUT, "prior.svg"))
nothing
θはカルフォルニアの死刑支持率である。θの事前分布はBeta(1,2/3)に従うとする。 1000人のカルフォルニア住人にサンプリングしたところ、死刑支持率は65%だった。 θの事後分布はどうなるか?
n=1000
y=1000*0.65
posterior_dist=Beta(α+y,β+n-y)
plot(prior_dist,yrotation=90,label="prior")
plot!(posterior_dist,label="posterior")
savefig(joinpath(@OUTPUT, "posterior.svg"))
nothing
(mean(posterior_dist),std(posterior_dist))
(0.6499168053244593, 0.015063858467520737)
E(θ|y)=0.65、σ(θ|y)=0.015である。
事前分布を変えて、事後分布がどの程度影響されるか確認する。
plot(posterior_dist,yrotation=90,label="Beta(1+y,2/3+n-y)",xlim=(0.5,0.8))
plot!(Beta(1+y,10+n-y),label="Beta(1+y,10+n-y)")
plot!(Beta(y,n-y),label="Beta(y,n-y)")
savefig(joinpath(@OUTPUT, "sensitivity.svg"))
nothing
図から事前分布を極端に変えない限りは事後分布は大きく変わらないことがわかる。 これはn=1000が十分に大きいためである。