0
1

More than 1 year has passed since last update.

統計的推定と検定をPythonで解く「区間推定(正規母集団で母分散既知の場合)」

Last updated at Posted at 2022-04-07

背景

「統計学は最強の学問である」という本が世に出たのが2013年だそうです。その頃と同じくして統計学を独学で学び始めましたが、深い理解までは届かず自分が使う部分を軽く使える様になっただけで終わってしまいました。

何の縁か、何度も統計に遭遇する機会はあったんですがすっ飛ばしてきました。その機会がまた始まりn回目の学習をしています。今回の新しい試みとして誠に勝手ながらQiitaに投稿させて頂こうと思いました。

目的

統計検定2級の範囲を理解します。

目標

統計的推定、統計的仮説検定を理解します。

資料

  1. 一般財団法人 統計質保証推進協会(2022.4)、統計検定、過去問
  2. 日本統計学会(2021.4.10)、統計検定2級対応統計学基礎、東京都書
  3. とけたろう(2022.4)、【完全網羅】統計検定2級チートシート

方法

統計検定2級の問題をベースに統計的推定と検定の理解を深めていきます。また、統計検定2級の問題では理解が進まない所は、webで情報を集めて理解を深めます。今回は「とけたろう」さんの

「【完全網羅】統計検定2級チートシート」
を使わせて頂きます。まずは「3.1 区間推定」を見ていきます。ここでのゴールは「区間推定をPythonで解ける程度に理解する事」です。具体的に問題を見ていきましょう。

問題

あるメーカーの電球Aの寿命を調べるため,次のように無作為に5つの標本を取り出した。
1134,1253,1078,1190,1045(時間)
この電球A全体の寿命の平均(母平均)をμとして,母集団は次の正規分布に従うものとする。
$N(\mu,84^2)$
このとき,母平均$μ$の信頼度95%の信頼区間を求めなさい。

解答

どういう問題か(問題の分類)

まず、この問題は「区間推定(正規母集団で母分散既知の場合)」に分類されるようです。他にも、とけたろうさんの例題では、「区間推定(正規母集団で母分散未知の場合)」「区間推定(一般母集団で大標本の場合)」について言及されています。

どのように解けるか(解法)

95%信頼区間を考える時、標準正規分布を想定すると考え易いです。95%信頼区間は標準化得点$Z$を用いて次の様に表すことが出来ます。
$P(-1.96\leq Z\leq 1.96)=0.95$
これはPという事象は確率的にいろんな値$Z$をとるけど、$-1.96\leq Z\leq 1.96$の範囲内では、95%信頼区間に入る、という事だと理解しておきます。
では$Z$とは何かというと、次の式で求められます。
$Z=\frac{\overline{X}-\mu}{U}(\overline{X}:標本平均、\mu:母平均、U:不偏標準偏差)$
ここで、不偏標準偏差は勝手にそれっぽく定義したので気を付けて下さい。ここはとけたろうさんの表現とは違います。意味は一緒のつもりなので、間違いがあったら教えて頂けると幸いです(´・ω・`)
そもそも、なんで不偏標準偏差$U$としたかというと、不偏分散$U^2$からの類推です。 今回の問題の標本の母集団は正規分布$N(\mu,84^2)$に従うので、標本の数$n=5$より、
$U^2=\frac{84^2}{5}$
$U=\frac{84}{\sqrt{5}}$
と考えています。以上より、$P(-1.96\leq Z\leq 1.96)=0.95$に具体的な数字が入ることになり、$-1.96\leq Z\leq 1.96$は次のようになります。
$\overline{X}-1.96\times U\leq\mu\leq\overline{X}+1.96\times\ U$
これより、求める母平均$μ$の信頼度95%の信頼区間は次のようになります。 $1066\leq\mu\leq1214$

どのように解けるか(Python)(追記:2022.4.8)

上の解法を用いてPythonで解いてみます。

1. データの入力

import numpy as np
data=np.array([1134,1253,1078,1190,1045])

2. 母平均の信頼区間の算出

from scipy import stats

sample_mean = barX
sample_std = np.std(data,ddof=1)
n=len(data)
#区間推定
low, high = stats.norm.interval(alpha=0.95, loc=sample_mean, scale=sample_std/np.sqrt(n))
print(f"母平均μの信頼度95%の信頼区間は、{low:.0f}≦μ≦{high:.0f}となります。")

この出力は「母平均μの信頼度95%の信頼区間は、$1066\leq\mu\leq1214$となります。」となります。
次に、このコードの解説をしていきます。と言っても解説するまでもなくライブラリに内包されています。stats.norm.interval関数なんですが、これを使うためには、「信頼度:alpha」「標本平均:loc」「標準誤差:scale」が必要になります。

感想

  1. この記事を作ってみて
    今回は、超主観的に統計的推定の簡単な問題を解きました。その際、自分の理解と様々なテキストとの表現の違いがありますので、その中でも自分の理解に近い物を使わせてもらい、自分の理解の流れに沿った形で問題を解かせて頂きました。私の表現の仕方に癖があり、受け入れられない方も多くいらっしゃると思いますが、そこは生暖かい目で見守って頂ければと思います。また、間違いの指摘やご意見などありましたら遠慮なく仰って下さい。また、今回はPythonを使う所まで行きませんでしたが、そのうち更新する予定です。

  2. 標準誤差について
    上で、私が定義した「不偏標準偏差$U=\frac{\sigma}{\sqrt{n}}$」は標準誤差というみたいで、$SE=\frac{\sigma}{\sqrt{n}}$という定義があるみたいです。とは言ってみたものの標本分布と母集団分布との関係で求める$\frac{\sigma^2}{n}$や、不偏分散を求める時に$n-1$になる分散$\sigma^2=\frac{1}{n-1}\sum\frac{(x_i-\bar{x})^2}{n-1}$なんかもいまいち分かっておらず、混乱の元になっています。

次の記事

統計的推定と検定をPythonで解く「区間推定(正規母集団で母分散未知の場合)」

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1