(非心)F分布のシミュレーション
要因による効果を反映した分散をノイズのみの効果を表す分散と比較するときに、要因の効果を反映する非心度の非心カイ二乗分布の確率変数を自由度で割ったものと、ノイズのみの分散に対応するカイ二乗分布の確率変数をその自由度で割った値との比の分布を考えると、非心F分布になる。非心カイ二乗分布とカイ二乗分布の比の分布として非心F分布のシミュレーションを行った。
非心度5,自由度3の非心カイ二乗分布に従う確率変数を自由度3で割った値と、自由度10(非心度0)のカイ二乗分布に従う確率変数をその自由度10で割った値との比を求めるシミュレーションを行い、ヒストグラムを描くと図1のようになった。
図1
赤色の曲線は、非心度5、自由度が3と10の非心F分布の確率密度関数である。ヒストグラムとよく合っていることがわかる。図1の描画を行ったスクリプトをリスト1に示す。
リスト1
import scipy.stats as ss
import numpy as np
import matplotlib.pyplot as plt
us = ss.ncx2.rvs(3, 5, size=1_000_000)
vs = ss.chi2.rvs(10, size=1_000_000)
F = (us/3) / (vs/10)
plt.hist(F, density=True,
bins=np.arange(np.min(F), np.max(F)+1))
xcoord = np.linspace(np.min(F),
np.max(F), 1000)
ycoord = ss.ncf.pdf(xcoord, 3, 10, 5)
plt.plot(xcoord, ycoord,
label='Noncentral F-distribution')
plt.legend()
plt.show()
上のシミュレーションでは、要因の効果を非心度5で表したが、要因の効果がないときは非心度は0となる。すなわち、自由度3のカイ二乗分布となる。自由度3のカイ二乗分布に従う確率変数と、自由度10のカイ二乗分布に従う確率変数をとり、それぞれの自由度で割った値の比を求め、ヒストグラムを描くと、図2のようになった。
図2
赤色の曲線は、自由度が3と10のF分布の確率密度関数である。曲線がヒストグラムによく合っていることがわかる。図2のグラフは、リスト2のスクリプトで描いた。
リスト2
import scipy.stats as ss
import numpy as np
import matplotlib.pyplot as plt
us = ss.ncx2.rvs(3, 0, size=1_000_000)
vs = ss.chi2.rvs(10, size=1_000_000)
F = (us/3) / (vs/10)
plt.hist(F, density=True,
bins=np.arange(np.min(F), np.max(F)+1))
xcoord = np.linspace(np.min(F),
np.max(F), 1000)
ycoord = ss.f.pdf(xcoord, 3, 10)
plt.plot(xcoord, ycoord,
label='F-disstribution')
plt.legend()
plt.show()
参考文献
Hogg, R. V., McKean, J. W., & Craig, A. T. (2005) Introduction to Mathematical Statistics, 6th ed. Pearson Education, Inc.