Juliaの世界

BDA3の3.10 Exercisesの3を解く。 本文はBayesian Data Analysis。 解答参考はSolutions to some exercises from Bayesian Data Analysis

  1. Estimation from two independent experiments

ニワトリの脳へのカルシウム流量yを測定する。 グループ1はコントロール群で、グループ2は実験群である。

サンプルサイズサンプル平均サンプル標準偏差
コントロール群nc=32n_c=32μc=1.013μ_c=1.013σc=0.24σ_c=0.24
実験群nt=36n_t=36μt=1.173μ_t=1.173σt=0.20σ_t=0.20

(a) 平均の事後分布

カルシウム流量yは正規分布に従うとする。その平均と標準偏差は不明である。 平均μと標準偏差σの事前分布は一様分布とする。本文p.64より事前分布は

p(μ,σ2)(σ2)1 p(μ,σ^2)∝(σ^2)^{-1}

となる。事後分布は

p(μ,σ2y)=p(μ,σ2)p(yμ,σ2)=σn2exp(12σ2[(n1)s2+n(yˉμ)2]) p(μ,σ^2|y)=p(μ,σ^2)p(y|μ,σ^2) \\ =σ^{-n-2}\exp(-\frac{1}{2σ^2}[(n-1)s^2+n(\bar y-μ)^2])

となる。 μの周辺事後分布は

p(μy)=p(μ,σ2y)dσ2 p(μ|y)=\int p(μ,σ^2|y)dσ^2

この計算は本文p.66で行なっている。最終的に

p(µy)[1+n(µ−yˉ)2(n1)s2]n/2 p(µ|y)∝[1 + \frac{n(µ − \bar y)^2}{(n − 1)s^2}]^{−n/2}

となる。これはtn1(yˉ,s2/n)t_{n-1}(\bar y,s^2/n)分布である。

µytn1(yˉ,s2/n) µ|y \sim t_{n-1}(\bar y,s^2/n)

今、コントロール群はN(μc,σc)N(μ_c,σ_c)に、実験群はN(μt,σt)N(μ_t,σ_t)に従うとしているので、 事後分布µcyµ_c|yµtyµ_t|yはそれぞれ

µcyctnc1(µc,σc2/nc)=t321(1.013,0.242/32) µ_c|y_c \sim t_{n_c-1}(µ_c,σ_c^2/n_c)=t_{32-1}(1.013,0.24^2/32) µtyttnt1(µt,σt2/nt)=t361(1.173,0.22/36) µ_t|y_t \sim t_{n_t-1}(µ_t,σ_t^2/n_t)=t_{36-1}(1.173,0.2^2/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

(b) µtµcµ_t-µ_cの分布

µtµcµ_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µ_t-µ_cのヒストグラムであり、95%信用区間は[0.05, 0.27]と推定された。