この記事では、Python言語とNumPyを用いて、母分散を点推定する方法をソースコード付きで解説します。
母分散の点推定
点推定とは、母集団の特性値(母平均・母分散など)を標本の特性値1つから推定することです。
母分散の点推定は、母集団から取り出した標本の不偏分散を計算するだけです。
点推定を何回も繰り返し、標本の不偏分散を複数回求めてその平均を取ってやれば、点推定で求めた母分散は本来の母分散の値に近づいていきます。
今回はそれを試してみました。
アルゴリズム
プログラムの処理手順は下記の通りです。
①数値計算モジュール「NumPy」をインポートする。
②サイズ100の母集団を生成する。
③母集団からサイズ5のデータをランダムに取り出し、標本を生成する。
④不偏分散を計算する。
⑤2-4の処理を100回繰り返す。
⑥100個の不偏分散の平均値を計算する。(母分散の推定)
⑦計算結果を表示する。
ソースコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*- import numpy as np def main(): # 母集団の生成 data = np.random.rand(50) # 母分散の点推定 var = np.ndarray([]) # 不偏分散を格納する配列 # 点推定(100回繰り返し) for i in range(100): x = np.random.choice(data,5) # 母集団からサイズ5の標本を抽出 var = np.append(var, np.var(x, ddof=1)) # 不偏分散を計算して配列に格納 sigma = np.average(var) # 100個の不偏分散の平均値:母集団の推定分散値 # 結果を表示 print("点推定で求めた母分散:", sigma) # 0.0601988023944 print("実際の母分散:", np.var(data, ddof=1)) # 0.0634012522763 if __name__ == '__main__': main()
コメント