030_点推定・区間推定の意味を理解している

解説

推定とは、母集団の「一部(標本)」を使って、母集団のパラメータを推定することです。(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

データセット

関連する記事

母(集団)平均が標本平均とは異なることを説明できる