ティ分布のシミュレーション
ティ分布については、<岡本安晴「データを使いこなすための統計入門」22世紀アート>の付録 確率:E.5 ティ分布で説明している。
自由度dのカイ2乗分布に従う確率変数をdで割ったものの平方根で標準正規分布に従う確率変数を割ると、自由度dのティ分布に従う確率変数が得られる。リスト1にシミュレーションのプログラム例を示す。
リスト1 ティ分布のシミュレーション
import numpy
as np
import scipy.stats
as ss
import matplotlib.pyplot
as plt
import seaborn
as sb
n_smpls = 1_000_000
df = int(input('df = '))
Z = ss.norm.rvs(0,
1, size = n_smpls)
Y = ss.chi2.rvs(df,
size = n_smpls)
t = Z / ((Y/df)**0.5)
sb.kdeplot(t, label = 'Simulation')
max_x = t.max()
x_coord = np.linspace(-max_x, max_x, 1000)
y_coord = ss.t.pdf(x_coord,
df)
plt.plot(x_coord, y_coord, label = 'Model')
plt.title(f'df = {df}')
plt.legend()
plt.show()
リスト1のスクリプトを実行すると、自由度の入力が求められる。
df = 5
自由度dfの入力後、計算が始まり、計算後、サンプルのKDEによるグラフとモデルのグラフが表示される(図1)。
図1