Up

カイ2乗分布のシミュレーション

 

岡本安データを使いこなすための統計入門」22世紀アート>付録 確率:E.4 カイ2乗分布で説明されているカイ2乗分布のシミュレーションを試みる。

df個の標準正規分布に従う独立な確率変数の2乗和は自由度dfのカイ2乗分布に従う。リスト1のスクリプトはこのことをシミュレーションで確認するものである。

 

リスト1 カイ2乗分布のシミュレーション

import numpy as np

import scipy.stats as ss

import matplotlib.pyplot as plt

 

n_smpls = 10000

df = int(input('df = '))

 

v = ss.norm.rvs(0, 1, size = (df, n_smpls))

v = v**2

smpls = v.sum(axis = 0)

plt.hist(smpls, density = True, label = 'Simulation')

max_x = smpls.max()

x_coord = np.linspace(0, max_x, 1000)

y_coord = ss.chi2.pdf(x_coord, df)

plt.plot(x_coord, y_coord, label = 'Model')

plt.title(f'df = {df}')

plt.legend()

plt.show()

 

リスト1のスクリプトを実行すると、自由度dfの入力が求められる。

 

df = 10

 

自由度を入力すると、それに対応したシミュレーションが行われ、生成されたデータのヒストグラムと対応するカイ2乗分布のグラフが表示される(図1)。

図1

 

 

参考文献

岡本安晴「データを使いこなすための統計入門」22世紀アート

 

Up