区間推定(Python)
区間推定とは?
例えば母集団のμとσ^2がわかっていないとき(片方がわかっている場合もある)、標本から母幅をもたせて母集団を推定することである。
区間推定には、幅における信頼度として信頼区間という言葉が使われる。
以下、定理
平均μ、分散σ^2の正規分布に従う独立な確率変数X1、X2...Xnがあるとするとき、T=¯Xーμ/U/√nは自由度n-1のt分布に従う。
まずはPythonのライブラリを用いて簡易的に区間推定を行う。(有効桁数は適当です)
95%信頼区間として、μを求める。
df = [94,99,86,101] #N=4のサンプル
ライブラリは、stats.t.intervalを用いる。
引数(alpha = 信頼係数、df = 自由度、loc = 標本平均、scale = 標準誤差)
※標準誤差は、σ/√Nで計算できる。
stats.t.interval(alpha = 0.95, df = len(df)-1, loc = mu, scale = se)
>(84.365, 105.634)
この結果によると、95%信頼区間は(84.365 <= μ <=105.634)であることがわかる。
次にT分布を用いてμの区間推定を行う。
t値の計算式は、
T = ¯X(標本平均)-μ(母平均)/U(不偏標準偏差)/√n
※ここでの分母「U(不偏標準偏差)/√n」を標準誤差(standart error)という。
> T分布は P(-t0.975 <= T <= t0.975)=95%(T = ¯X-μ/U/√n)となる。
上記式を μについて解くと
>¯X-t0.975*U/√n <= μ <= ¯X+t0.975*U/√n となる。
ここで、T分布の97.5%点を求める。
t_975 = stats.t.ppf(0.975, len(df)-1)
>3.182
¯X-t0.975*U/√n <= μ <= ¯X+t0.975*U/√nにそれぞれ代入。
>mu - 3.182*se <= μ <= mu + 3.182*se
mu - 3.182*se
>84.367
mu + 3.182*se
>105.63
stats.t.intervalで計算した結果とほぼ一緒になることがわかる。
結論、Pythonライブラリ使っとけばいい。
参考
Pythonで学ぶあたらしい統計学の教科書(馬場 真哉)|翔泳社の本