BDA3の2.11 Exercisesの8を解く。 リンクはBayesian Data Analysis。
Normal distribution with unknown mean
n人の生徒の体重を測る。測定の結果、平均はポンドだった。 yはに従うとする。つまり、平均はわからないが分散はわかっている状況である。 θの事前分布をとする。
本文の(2.10)より
ここで
である。yをn回測定して、yの平均がわかっているので、本文(2.11)より、
ここで
である。全て代入すれば、θの事後分布は
である。
using Distributions, StatsPlots
μₙ(n)=(1//40^2*180+n//20^2*150)//(1//40^2+n//20^2)
plot(1:50,μₙ,yrotation=90,label="μₙ(n)")
savefig(joinpath(@OUTPUT, "mean.svg"))
nothing
事後分布の平均μₙは156から150に漸近する。
τₙ²(n)=1//(1//40^2+n//20^2)
plot(1:50,n->sqrt(τₙ²(n)),yrotation=90,label="τₙ(n)")
savefig(joinpath(@OUTPUT, "variance.svg"))
nothing
事後分布の標準偏差τₙは18から0に漸近する。
posterior_dist(n)=Normal(μₙ(n),sqrt(τₙ²(n)))
plot(Normal(180,40),yrotation=90,label="prior:N(180,40^2)",xlim=(100,250))
plot!(posterior_dist(3),label="N(μₙ(3),τₙ²(3))")
plot!(posterior_dist(20),label="N(μₙ(20),τₙ²(20))")
savefig(joinpath(@OUTPUT, "posterior.svg"))
nothing
事後予測分布の分布の平均はLaw of total meanより、
である。分散はLaw of total varianceより、
(2)を代入すると、
μ₁(n)=(1//40^2*180+n//20^2*150)//(1//40^2+n//20^2)
τ₁²(n)=1//(1//40^2+n//20^2)+20^2
posterior_predictive_dist(n)=Normal(μ₁(n),sqrt(τ₁²(n)))
plot(Normal(180,40),yrotation=90,label="prior(θ)",xlim=(100,250))
plot!(posterior_dist(3),label="posterior(θ,n=3)")
plot!(posterior_dist(20),label="posterior(θ,n=20)")
plot!(posterior_predictive_dist(3),label="posterior(y,n=3)")
plot!(posterior_predictive_dist(20),label="posterior(y,n=20)")
savefig(joinpath(@OUTPUT, "posterior_predictive.svg"))
nothing
θの事前分布は180を中心に広く分布している。θはyの平均値である。 θの事後分布はnを大きくするごとにに近づき、分散も小さくなる。 yの事後分布もnを大きくするごとに150に近づくが、分散はθの事後分布と比べ大きい。
quantile(posterior_dist(10),[0.025,0.975])
2-element Vector{Float64}:
138.48790937180104
162.97550526234525
の95%信用区間は[139,163]である。
quantile(posterior_predictive_dist(10),[0.025,0.975])
2-element Vector{Float64}:
109.66476055447212
191.79865407967415
の95%信用区間は[110,192]である。
quantile(posterior_dist(100),[0.025,0.975])
2-element Vector{Float64}:
146.15977574022958
153.98985019493247
の95%信用区間は[146,154]である。
quantile(posterior_predictive_dist(100),[0.025,0.975])
2-element Vector{Float64}:
110.68051078098043
189.46911515418162
の95%信用区間は[111,190]である。