先日は、Pythonで「区間推定(正規母集団で母分散既知の場合)」を行いました。コード的には、stats.norm.interval 関数を用い母平均の信頼区間を求めるだけです。その引数として「信頼度:alpha」「標本平均:loc」「標準誤差:scale」を必要としました。基本は標準化得点$Z$について、
$P(−1.96≤Z≤1.96)=0.95$
が成り立つため、母分散の信頼区間を求めるために上手い具合に式を変形して求められるのでした。
前回の記事
統計的推定と検定をPythonで解く「区間推定(正規母集団で母分散既知の場合)」
今回は、「区間推定(正規母集団で母分散未知の場合)」について解いていこうと思います。今回も「とけたろうさんのチートシート」を使わせて頂きます。今回の問題も前回に引き続き電球の寿命を調べる問題になっています。全く同じ題材を少し変えて出して下さるので分かり易いと思います。
問題
【問題】あるメーカーの電球Aの寿命を調べるため,次のように無作為に5つの標本を取り出した。1134,1253,1078,1190,1045(時間)
この電球Aの寿命のデータ全体(母集団)は正規分布に従うものとするとき,母平均 $\mu$ の信頼度 95% の信頼区間を求めなさい。
解答
どういう問題か(問題の分類)
今回も、母平均の区間推定です。確率分布としては正規母集団で、母分散は未知です。どのように解けるか(解法)
母分散 $\sigma^2$ が分かっている時は、95% 信頼区間を考える時、標準正規分布を想定しました。今回は母分散 $\sigma^2$ が分かっていないので、$t$ 分布を想定し、推定量 $T$ を求めます。95% 信頼区間は推定量 $T$ を用いて次の様に表すことが出来ます。今回は自由度4の $t$ 分布なので、$t$ 分布表より上側 2.5% 点は 2.776 となります。$P(-2.776\leq T\leq 2.776)=0.95$
これは $P$ という事象は確率的にいろんな値 $T$ をとるが、$−2.776≤T≤2.776$ の範囲内では、95% 信頼区間に入る、という事だと理解しておきます。 では $T$ とは何かというと、次の式で求められます。
$$T=\displaystyle \frac{\bar{X}-\mu}{SE}$$
$$SE=\displaystyle \frac{U}{\sqrt{n}}$$
$\bar{X}$:標本平均、$\mu$:母平均、$U$:不偏分散、不偏標準誤差:$SE$
ここで、不偏標準誤差は勝手にそれっぽく定義したので気を付けて下さい。ここはとけたろうさんの表現とは違います。意味は一緒のつもりなので、間違いがあったら教えて頂けると幸いです(´・ω・`)
そもそも、なんで不偏標準誤差$SE$としたかというと、標準誤差 $SE$ をそのまま流用した物で間違いの元になるのですが、一時的に使用しています。
$P(-2.776\leq T\leq 2.776)=0.95$
に戻りますと、$T$の式を代入して式を変形します。
$P(-2.776\leq \displaystyle \frac{\bar{X}-\mu}{SE}\leq 2.776)=0.95$
$P(\bar{X}-2.776\times SE\leq \mu\leq \bar{X}+2.776\times SE)=0.95$
$SE=\displaystyle \frac{U}{\sqrt{n}}$ なので$U$を次のように求めます。
不偏分散の実現値 $U^2$ は、自由度が4なので
$U^2= \frac{(1134-1140)^2+(1253-1140)^2+(1078-1140)^2+(1190-1140)^2+(1045-1140)^2}{4}$
$=7043.5$
$U≒83.9$
これらを代入すると、母平均 $μ$ の信頼度 95% の信頼区間は次のように求められます。
$1036\leq \mu\leq 1224$
どのように解けるか(Python)
import numpy as np
from scipy import stats
data=np.array([1134,1253,1078,1190,1045])
barX=data.mean()
sample_mean = barX
sample_std = np.std(data,ddof=1)
n=len(data)
#区間推定
low, high = stats.t.interval(alpha=0.95, loc=sample_mean, scale=sample_std/np.sqrt(n), df=n-1)
母平均$\mu$の信頼度95%の信頼区間は
$1036\leq \mu\leq 1224$になります。
次に、このコードの解説をしていきます。前回は正規分布だったため、stats.norm.interval 関数を使いました。今回は $t$ 分布ですので stats.t.interval 関数なのですが、これを使うためには、「信頼度:alpha」「標本平均:loc」「不偏標準誤差:scale」「自由度:df」が必要になります。
感想
- この記事を作ってみて
今回は、統計的推定の簡単な問題2です。前回の「統計的推定(正規母集団で母分散既知の場合)」でした。違いは「正規分布か$t$分布か」くらいだったと思います。私の表現の仕方に癖があり、受け入れられない方も多くいらっしゃると思いますが、そこは生暖かい目で見守って頂ければと思います。また、間違いの指摘やご意見などありましたら遠慮なく仰って下さい。