Up

ティ分布のシミュレーション

 

ティ分布については、<岡本安晴データを使いこなすための統計入門」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

 

 

Up