カイ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
参考文献