区間推定(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で学ぶあたらしい統計学の教科書(馬場 真哉)|翔泳社の本