前回の続きで社会統計の 3 つのポイントのうち 2 つ目の標本から母集団を推測する話です。このあたりは今までに何度も書いてきた部分なので復習してみましょう。
標本抽出
分析してこれから知りたいと思う集団全体を 母集団 (population) と呼びます。
母集団からの標本抽出や標本抽出法についてはすでに書きました。
統計学では多くの場合母集団の平均や分散があらかじめ判明していることはほとんどなく、それらを推定するために検定などをします。母集団から抽出した標本の標本調査によって母集団の性質を一定の信頼度によって調べることができます。
母集団について完全に知ることが困難な理由はいくつかあります。
- 日本人全体、世界全体という風に、母集団が非常に大きな主語となっている
- 母集団の数自体は大きくないが、出荷予定あるいは出荷済み製品すべての検査が困難であるといったように、全数調査が現実的でない
- 来年の経済成長率のように将来の要素を含むため現時点では測定が不可能であり推定せざるをえない
といったものが考えられます。
推定
現実の経済分析や政策の評価、顧客調査などのためにデータを数値として利用するには、その平均や分散がわからなければなりません。母数は現実の問題では未知であり、手元のサンプルから 推定 (estimation) することになります。
区間推定 (interval estimation) は母数が含まれる値の範囲を推定します。この際に必要な情報は主に次のものです。
- 標本平均
- 標本比率
- 標準誤差の推定値
- 推定の誤差 (標準誤差) をどの程度まで抑えるか
統計学で言う自由度とは、自由に設定できる余地のある値の数のことを指します。自由度と検定では自由度の定義と検定への応用を説明しました。
不偏性とは、推定量の期待値をとった場合、真の母数の値となることです。つまり平均的に過大・過小の推定がないことです。これを満足する推定量が 不偏推定量 (unbiased estimator) です。
標本平均、標本分散の不偏性はとくに大切です。標本平均はつねに母平均の不偏推定量になります。
# 500 個の正規分布にしたがうサンプルデータを用意する
data = np.random.normal(loc=100, scale=25, size=500)
# 平均を求める
mu = np.mean(data)
# => 99.416556898424659
# 分散を求める
s2 = np.var(data, ddof=1) # 不偏分散
# => 685.08664455245321
# 90% 信頼区間
from scipy.stats import norm
rv = norm()
z = rv.ppf(0.995)
# 100(1-σ)% 信頼区間
r = np.array([-z, z]) * np.sqrt(25/500)
# => array([-0.36780045, 0.36780045])
mu + r
# => array([ 99.04875645, 99.78435735]) # 区間推定
上の例では N = 500 としていますが、この N が大きくなれば大数の法則に基づき正規分布の値に近づいていきます。
検定
母数の分布について何らかの仮定をした際には分布の適合度を検定します。各水準の母平均に差があるか検定するには分散分析 (analyds of variance)をします。
等分散仮説の検定において[母分散が等しいか否かに関わらず、 t 検定においてはウェルチの検定を使う]
(http://qiita.com/ynakayama/items/b9ec31a296de48e62863)べきです。
実際のところ、最近の R で t 検定をすると既定でウェルチの検定がおこなわれることになります。 Python (SciPy) でも同様にするべきです (equal_var=False オプションを指定)。とはいえ母分散が既知かどうか、未知であるが等しいか、等しいとは言えないかということは把握しておきましょう。
次回はこの続きで、変量の関連を調べる話です。