解説
推定とは、母集団の「一部(標本)」を使って、母集団のパラメータを推定することです。(ex.パラメータとは平均や分散などを指します)
以下の表に、点推定と区間推定の概要をまとめました。
(一言で言えば、点推定では母集団のパラメータを一意に推測するのに対して、区間推定では幅を持たせて推測するということです)
推定種別 | 概要 |
---|---|
点推定 | 母集団から抽出された標本を利用して、母集団のパラメータを推測すること |
区間推定 | 点推定で推定したパラメータのバラツキや信頼区間を示すこと |
区間推定の概要に出てきた信頼区間とは、推定対象となる母集団のパラメータを含むと思われる値の範囲のことです。この範囲には95%と99%が主に使われます。これらは信頼度と呼ばれる基準で、信頼度が95%ならば100回に95回は正しいという割合を示すものです。(1から信頼度を引いた値を「有意水準(significance level)」といいます)
なお、区間推定は、標本平均、標準誤差を算出し、有意水準を設定すれば、pythonで簡単に行うことができます。(ソースコード参照)
ステップアップ
ー
キーワード
- 推定
- 点推定
- 区間推定
- 信頼区間
- 有意水準
ソースコード
confidence_interval.py:区間推定を行うプログラム
# coding:utf-8 import numpy as np from scipy import stats # サンプル数 sample_number = 10000 # 有意水準:帰無仮説を棄却するために、あらかじめ決めた確率水準のこと。ここでは信頼係数95%とする alpha = 0.95 def confidence_interval(sample_number,alpha): # 標準正規分布に従うデータをsample_number個分だけ生成する sample_data = np.random.randn(sample_number) # 生成したデータの平均値を求める mean_value = np.mean(sample_data) # 平均値の標準誤差(SEM)を求める sem_value = stats.sem(sample_data) # 期待値loc,標準偏差scaleの正規分布のalphaぶんだけの分布が含まれる範囲を,メディアンを中心に取得する min,max = stats.t.interval(alpha, len(sample_data) - 1, loc=mean_value, scale=sem_value) print(u'信頼区間の下限値:'+ str(min)) print(u'信頼区間の上限値:'+ str(max)) if __name__ == '__main__': confidence_interval(sample_number,alpha)
このプログラムを実行すると、標準正規分布に従うデータ(10000件)の95%信頼区間の下限値・上限値を算出します。(実行時にその都度ランダムでデータを生成しているため、結果には若干の誤差が発生します)
以下の実行結果を見ると、正解である平均値0に収まるように下限値と上限値が算出されているのが分かります。なお、データ数を大きくすればするほど、信頼区間の精度も高まります。
実行1回目
信頼区間の下限値:-0.0150605735011 信頼区間の上限値:0.0245210816492
実行2回目
信頼区間の下限値:-0.0361703003868 信頼区間の上限値:0.00258919114906
データセット
ー