条件付きの正規分布の周辺確率密度関数を求めました。
コード
条件付き分布Y|X=x を生成し、Yの周辺分布が標準正規分布に従うかシミュレーションしてみます。
# 2018 Q4(1) 2024.10.18
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# パラメータ設定
rho = 0.7 # 相関係数
# サンプルサイズ
n_samples = 10000
#Xを標準正規分布からサンプル
X = np.random.normal(0, 1, n_samples)
#Y|X=x に基づいてYを生成
Y = np.random.normal(rho * X, np.sqrt(1 - rho**2))
#Yのヒストグラムを描画
plt.hist(Y, bins=50, density=True, alpha=0.6, color='g', label='シミュレーションされた Y')
# 理論的な標準正規分布N(0,1)の曲線を重ねる
x_vals = np.linspace(-4, 4, 1000)
plt.plot(x_vals, norm.pdf(x_vals, 0, 1), 'r-', lw=2, label='理論分布 N(0,1)')
# ラベルを描画
plt.title('シミュレーションされた Y と理論分布 N(0,1) の比較')
plt.xlabel('Y')
plt.ylabel('確率密度')
plt.legend()
# グラフを表示
plt.show()
Yは標準正規分布に従うことが確認できました。