2019 Q1(4)

二項分布に従う確率変数Xの不等式が成り立つことの証明をやりました。

 

コード

Xが二項分布B(n,p)に従うとき、不等式P(X \leq an) \leq \left( \frac{p}{a} \right)^{an} \left( \frac{1 - p}{1 - a} \right)^{(1 - a)n}が成り立つのか可視化して確認しました。

# 2019 Q1(4)  2024.9.12

import numpy as np
from scipy.stats import binom
import matplotlib.pyplot as plt

# パラメータ設定
n_values = [10, 30, 50]  # 試行回数 n のリスト
p_values = [0.3, 0.5, 0.7]  # 成功確率 p のリスト
a_values = np.linspace(0.01, 0.99, 50)  # a の範囲

# サブプロットの作成
fig, axes = plt.subplots(3, 3, figsize=(15, 15))  # 3x3のグリッドでグラフを描画

# グラフの描画ループ
for i, n in enumerate(n_values):
    for j, p in enumerate(p_values):
        # 左辺と右辺の値を格納するリスト
        left_side_values = []
        right_side_values = []

        for a in a_values:
            # 左辺:P(X <= an) の計算
            k = int(np.floor(a * n))
            left_side = binom.cdf(k, n, p)
            left_side_values.append(left_side)

            # 右辺の計算
            right_side = (p / a) ** (a * n) * ((1 - p) / (1 - a)) ** ((1 - a) * n)
            right_side_values.append(right_side)

        # グラフの描画(対数スケール)
        ax = axes[i, j]
        ax.plot(a_values, left_side_values, label='左辺 $P(X \leq an)$', color='blue')
        ax.plot(a_values, right_side_values, label='右辺', color='red', linestyle='--')

        # 0 < a < p の範囲に色を塗る
        ax.axvspan(0, p, color='yellow', alpha=0.3, label="0<a<pの範囲")

        ax.set_title(f'n={n}, p={p}')
        ax.set_xlabel('$a$')
        ax.set_ylabel('値 (対数スケール)')
        ax.set_yscale('log')  # 縦軸を対数スケールに設定
        ax.legend()
        ax.grid(True, which="both", ls="--")  # 対数スケールのグリッド

# サブプロット間のレイアウト調整
plt.tight_layout()
plt.show()

不等式P(X \leq an) \leq \left( \frac{p}{a} \right)^{an} \left( \frac{1 - p}{1 - a} \right)^{(1 - a)n}は0<a<pの範囲で成り立っていることが確認できました