(非心)カイ二乗分布のシミュレーション
誤差あるいは残差は正規分布で表されることが多い。正規分布の2乗和はカイ二乗分布に従うので、誤差あるいは残差を扱うかk鵜率的統計モデルでは、カイ二乗分布が用いられることが多い。正規分布の二乗和がカイ二乗分布に従うことを示すシミュレーションスクリプトを書いてみた。
独立な正規分布に従う個の確率変数
を考える。
の平均値は
、標準偏差は1とする。このとき
は、非心度、自由度
の非心カイ二乗分布に従う。ここで、
である。
式(1)は、点の原点からの距離の2乗であるので、非心カイ二乗分布は、点
を中心に共分散行列が単位行列である多変量正規分布に従う確率変数
の原点からの距離の2乗の分布であると考えられる。このことを、
の場合についてシミュレーションで確認する。
まず、2変量正規分布として、平均値がのものを考える。共分散行列は単位行列である。
リスト1のスクリプトで、分布の様子を描くと、図1のようである。
図1
リスト1
import
scipy.stats as ss
import matplotlib.pyplot as plt
n_simu = 1_000
x = ss.multivariate_normal.rvs([3, 4],
[[1, 0],[0, 1]], size=n_simu)
plt.figure(figsize=(7,7))
plt.plot(x.T[0], x.T[1], 'o',
markerfacecolor='none')
plt.plot([-1, 7], [0, 0], c='k', lw=2)
plt.plot([0, 0], [-1, 7], c='k', lw=2)
plt.plot([-1, 7], [4, 4], c='k', lw=1)
plt.plot([3, 3], [-1, 7], c='k', lw=1)
plt.xlabel('X1', fontsize=16)
plt.ylabel('X2', fontsize=16)
plt.show()
図1の分布で表される2変量正規分布に従う点の原点からの距離の2乗の分布をシミュレーションで求め、ヒストグラムを描くと図2のようになった。
図2
赤色の曲線で描かれているのは、非心度、自由度
の非心カイ二乗分布の確率密度関数である。ヒストグラムは、赤色の曲線によく合っているといえる。
図2を描いたスクリプトをリスト2に示す。
リスト2
import scipy.stats as ss
import numpy as np
import matplotlib.pyplot as plt
n_simu = 1_000_000
x = ss.multivariate_normal.rvs([3, 4],
[[1, 0],[0, 1]], size=n_simu)
smpl = np.sum(x**2, axis=1)
xcoord = np.linspace(0.0,
np.max(smpl), 1000)
ycoord = ss.ncx2.pdf(xcoord, 2, 5**2)
plt.hist(smpl, density=True,
bins=np.arange(np.max(smpl)+1))
plt.plot(xcoord, ycoord, c='r',
label='df=2, nc=5**2')
plt.legend()
plt.show()
非心度の分布は、カイ二乗分布と呼ばれている。
平均値が0,、すなわち、原点を中心として分布している場合のヒストグラムを描いたものが図3である。
図3
ヒストグラムと自由度の7回二乗分布のグラフ(赤色の曲線)がよく合っていることがわかる。
参考文献
Hogg, R. V., McKean, J. W., & Craig, A. T. (2005) Introduction to Mathematical Statistics, 6th ed. Pearson Education, Inc.