120
■
10
章
ベイズ計算を近似する
σ
の推定は、サンプルの標準誤差、
s
となる。
推定した
の標準誤差は
s/
n
であり、推定した
σ
の標準誤差は、
s/
2(
n
−
1)
と
なる。
これらすべてを計算するコードを次に示す。
def FindPriorRanges(xs, num_points, num_stderrs=3.0):
# compute m and s
n = len(xs)
m = numpy.mean(xs)
s = numpy.std(xs)
# compute ranges for m and s
stderr_m = s / math.sqrt(n)
mus = MakeRange(m, stderr_m, num_stderrs)
stderr_s = s / math.sqrt(2 * (n-1))
sigmas = MakeRange(s, stderr_s, num_stderrs)
return mus, sigma
xs
がデータ集合、
num_points
が範囲内で求めたい値の個数、
num_stderrs
が推定の
片側の範囲の幅を標準偏差の個数で表したものである。
返される値は、
mus
と
sigmas
という列の対である。
MakeRange
は次のようになる。
def MakeRange(estimate, stderr):
spread = stderr * num_stderrs
array = numpy.linspace(estimate-spread,
estimate+spread, ...