BDA3の3.10 Exercisesの3を解く。 本文はBayesian Data Analysis。 解答参考はSolutions to some exercises from Bayesian Data Analysis。
ニワトリの脳へのカルシウム流量yを測定する。 グループ1はコントロール群で、グループ2は実験群である。
| サンプルサイズ | サンプル平均 | サンプル標準偏差 |
---|
コントロール群 | nc=32 | μc=1.013 | σc=0.24 |
実験群 | nt=36 | μt=1.173 | σt=0.20 |
カルシウム流量yは正規分布に従うとする。その平均と標準偏差は不明である。 平均μと標準偏差σの事前分布は一様分布とする。本文p.64より事前分布は
p(μ,σ2)∝(σ2)−1 となる。事後分布は
p(μ,σ2∣y)=p(μ,σ2)p(y∣μ,σ2)=σ−n−2exp(−2σ21[(n−1)s2+n(yˉ−μ)2]) となる。 μの周辺事後分布は
p(μ∣y)=∫p(μ,σ2∣y)dσ2 この計算は本文p.66で行なっている。最終的に
p(µ∣y)∝[1+(n−1)s2n(µ−yˉ)2]−n/2 となる。これはtn−1(yˉ,s2/n)分布である。
µ∣y∼tn−1(yˉ,s2/n) 今、コントロール群はN(μc,σc)に、実験群はN(μt,σt)に従うとしているので、 事後分布µc∣y、µt∣yはそれぞれ
µc∣yc∼tnc−1(µc,σc2/nc)=t32−1(1.013,0.242/32) µt∣yt∼tnt−1(µt,σt2/nt)=t36−1(1.173,0.22/36) である。
using Distributions, StatsPlots
control_dist = 1.013 + TDist(32-1)*0.24/sqrt(32)
exposed_dist = 1.173 + TDist(36-1)*0.2/sqrt(36)
plot(control_dist, label="control", yrotation=90)
plot!(exposed_dist, label="exposed")
savefig(joinpath(@OUTPUT, "TDist.svg"))
nothing
µt−µcの分布を調べることで、実験の効果測定を行う。
using Random
Random.seed!(1)
ycontrol=rand(control_dist,5000)
yexposed=rand(exposed_dist,5000)
dif = yexposed .- ycontrol
histogram(dif, label="µt - µc", yrotation=90)
savefig(joinpath(@OUTPUT, "dif.svg"))
quantile(dif,[.025,.975])
2-element Vector{Float64}:
0.04907497523383009
0.2686457314755031
図はµt−µcのヒストグラムであり、95%信用区間は[0.05, 0.27]と推定された。