0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

確率分布

Posted at

🌟 二項分布の定義

成功確率 $p$、試行回数 $n$ のベルヌーイ試行を $n$ 回繰り返すとき、成功回数 $X$ は以下の確率で分布する:

$$
P(X = k) = \binom{n}{k} p^k (1 - p)^{n - k}
\quad (k = 0, 1, \dots, n)
$$


✅ 期待値の導出

期待値 $\mathbb{E}[X]$ は以下の式から求める:

$$
\mathbb{E}[X] = \sum_{k=0}^{n} k \cdot \binom{n}{k} p^k (1 - p)^{n - k}
$$

ここで、以下の恒等式を用いる:

$$
k \cdot \binom{n}{k} = n \cdot \binom{n-1}{k-1}
$$

したがって、

$$
\mathbb{E}[X] = n \cdot \sum_{k=1}^{n} \binom{n-1}{k-1} p^k (1-p)^{n-k}
$$

変数変換 $j = k - 1$ によって:

$$
\mathbb{E}[X] = n \cdot p \cdot \sum_{j=0}^{n-1} \binom{n-1}{j} p^j (1-p)^{n-1-j} = n \cdot p
$$


✅ 分散の導出

$$
\mathrm{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2
$$

まず、

$$
\mathbb{E}[X(X - 1)] = \sum_{k=0}^{n} k(k - 1) \binom{n}{k} p^k (1 - p)^{n - k}
= n(n-1)p^2
$$

$$
\Rightarrow \mathbb{E}[X^2] = \mathbb{E}[X(X - 1)] + \mathbb{E}[X]
= n(n-1)p^2 + np
$$

$$
\mathrm{Var}(X) = n(n-1)p^2 + np - (np)^2 = np(1 - p)
$$


✅ モーメント母関数(MGF)を用いた導出

二項分布のモーメント母関数:

$$
M_X(t) = (pe^t + 1 - p)^n
$$

期待値:

$$
\mathbb{E}[X] = M_X'(0) = n p
$$

分散:

$$
\mathrm{Var}(X) = M_X''(0) - (M_X'(0))^2 = np(1 - p)
$$


🧪 ポケモンの例で考える(二項分布)

  • ポケモンの技「かえんほうしゃ」が命中率 85%。

  • 10回試行するとき、「命中した回数」を $X$ とすると、$X \sim \text{Binomial}(10, 0.85)$

  • 期待値:

    $$
    \mathbb{E}[X] = 10 \cdot 0.85 = 8.5 \quad \text{(平均的に8.5回命中)}
    $$

  • 分散:

    $$
    \mathrm{Var}(X) = 10 \cdot 0.85 \cdot 0.15 = 1.275 \quad \text{(ブレ幅)}
    $$

  • 標準偏差:

    $$
    \sqrt{1.275} \approx 1.13
    $$


import numpy as np  # 数値計算ライブラリ / Numerical computation
import matplotlib.pyplot as plt  # グラフ描画ライブラリ / For plotting
from scipy.stats import binom  # 二項分布 / Binomial distribution

# -------------------------------
# Parameters / パラメータの設定
# -------------------------------
n = 10          # 試行回数 / Number of trials
p = 0.85        # 成功確率 / Probability of success
x = np.arange(0, n+1)  # 0 から n までの全成功数 / All possible success counts

# -------------------------------
# Binomial PMF / 二項分布の確率質量関数
# -------------------------------
pmf = binom.pmf(x, n, p)  # P(X = k) を計算 / Compute the PMF

# -------------------------------
# Expected Value and Variance / 期待値と分散
# -------------------------------
expected_value = n * p  # 期待値 / Expected value
variance = n * p * (1 - p)  # 分散 / Variance
std_dev = np.sqrt(variance)  # 標準偏差 / Standard deviation

# -------------------------------
# Plot / グラフ表示
# -------------------------------
plt.figure(figsize=(10, 6))  # 図のサイズ / Set figure size
plt.bar(x, pmf, color='skyblue', edgecolor='black')  # 棒グラフ表示 / Bar plot
plt.title('Binomial Distribution PMF (n=10, p=0.85)')  # タイトル / Title
plt.xlabel('Number of successes (k)')  # 横軸ラベル / X-axis label
plt.ylabel('Probability P(X=k)')  # 縦軸ラベル / Y-axis label
plt.grid(axis='y')  # Y軸にグリッド表示 / Grid on Y-axis

# 期待値の位置に赤い破線を引く / Draw a red dashed line at expected value
plt.axvline(expected_value, color='red', linestyle='--',
            label=f'Expected value = {expected_value:.2f}')
plt.legend()  # 凡例を表示 / Show legend
plt.tight_layout()  # レイアウト調整 / Adjust layout
plt.show()  # グラフ表示 / Show plot

📘 ポアソン分布の定義

平均発生率 $\lambda$ のとき、単位時間内に $k$ 回事象が起こる確率は:

$$
P(X = k) = \frac{\lambda^k}{k!} e^{-\lambda} \quad (k = 0, 1, 2, \dots)
$$


✅ 期待値の導出

期待値 $\mathbb{E}[X]$ を直接求める:

$$
\mathbb{E}[X] = \sum_{k=0}^\infty k \cdot \frac{\lambda^k}{k!} e^{-\lambda}
= e^{-\lambda} \sum_{k=1}^\infty k \cdot \frac{\lambda^k}{k!}
= e^{-\lambda} \sum_{k=1}^\infty \frac{\lambda^k}{(k-1)!}
$$

変数変換 $j = k - 1$ より:

$$
\mathbb{E}[X] = e^{-\lambda} \cdot \lambda \cdot \sum_{j=0}^\infty \frac{\lambda^j}{j!}
= \lambda \cdot e^{-\lambda} \cdot e^\lambda = \lambda
$$


✅ 分散の導出

分散 $\mathrm{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2$

まず $\mathbb{E}[X(X-1)]$ を求める:

$$
\mathbb{E}[X(X-1)] = \sum_{k=0}^\infty k(k-1) \cdot \frac{\lambda^k}{k!} e^{-\lambda}
= \lambda^2
$$

よって:

$$
\mathbb{E}[X^2] = \mathbb{E}[X(X-1)] + \mathbb{E}[X] = \lambda^2 + \lambda
$$

したがって:

$$
\mathrm{Var}(X) = \lambda^2 + \lambda - \lambda^2 = \lambda
$$


✅ モーメント母関数を用いた導出(MGF)

モーメント母関数 $M_X(t)$ は:

$$
M_X(t) = \mathbb{E}[e^{tX}] = \sum_{k=0}^\infty \frac{\lambda^k}{k!} e^{tk} \cdot e^{-\lambda}
= e^{-\lambda} \sum_{k=0}^\infty \frac{(\lambda e^t)^k}{k!}
= e^{-\lambda} \cdot e^{\lambda e^t} = e^{\lambda(e^t - 1)}
$$

MGFによる期待値:

$$
\mathbb{E}[X] = M_X'(0)
= \left.\frac{d}{dt} e^{\lambda(e^t - 1)}\right|_{t=0}
= \lambda e^0 = \lambda
$$

MGFによる分散:

$$
\mathbb{E}[X^2] = M_X''(0)
= \lambda + \lambda^2 \Rightarrow \mathrm{Var}(X) = \lambda
$$


✅ Pythonによる数値確認

# Program Name: poisson_distribution_plot.py  
# Creation Date: 20250608  
# Overview: Plot Poisson distribution PMF and show expected value and variance  
# Usage: Run in Python environment with matplotlib and scipy installed  

# -------------------------------
# Install required libraries
# -------------------------------
!pip install numpy matplotlib scipy --quiet

# -------------------------------
# Import libraries / ライブラリのインポート
# -------------------------------
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import poisson

# -------------------------------
# Parameter definitions / パラメータ定義
# -------------------------------
λ = 4                # 平均発生率 / Mean event rate
x = np.arange(0, 15) # 観測される回数の範囲 / Range of event counts

# -------------------------------
# Calculate PMF / 確率質量関数の計算
# -------------------------------
pmf = poisson.pmf(x, mu=λ)

# -------------------------------
# Expected value and variance / 期待値と分散の計算
# -------------------------------
expected_value = λ                # E[X] = λ
variance = λ                      # Var(X) = λ
std_dev = np.sqrt(variance)       # 標準偏差 = √λ

# -------------------------------
# Plot PMF / PMFの描画
# -------------------------------
plt.figure(figsize=(10, 6))  # 図のサイズ設定 / Set figure size
plt.bar(x, pmf, color='orange', edgecolor='black')  # ポアソン分布の棒グラフ / Poisson PMF bar chart

# タイトルとラベル設定 / Set title and axis labels
plt.title(f'Poisson Distribution PMF (λ = {λ})')
plt.xlabel('Number of occurrences (k)')
plt.ylabel('Probability P(X = k)')
plt.grid(axis='y')

# 期待値ラインの表示 / Draw expected value line
plt.axvline(expected_value, color='red', linestyle='--', label=f'Expected value = {expected_value:.2f}')
plt.legend()
plt.tight_layout()
plt.show()

✅ 幾何分布の定義

成功確率 $p$ の独立なベルヌーイ試行を繰り返し、初めて成功する試行が $k$ 回目である確率:

$$
P(X = k) = (1 - p)^{k - 1} p \quad (k = 1, 2, 3, \dots)
$$


✅ 期待値 $\mathbb{E}[X]$ の導出

期待値の定義に従い:

$$
\mathbb{E}[X] = \sum_{k=1}^{\infty} k \cdot (1 - p)^{k - 1} \cdot p
$$

ここで $q = 1 - p$ とおくと:

$$
\mathbb{E}[X] = p \sum_{k=1}^{\infty} k q^{k - 1}
$$

変数変換 $j = k - 1$ により:

$$
= p \sum_{j=0}^{\infty} (j + 1) q^j
= p \left( \sum_{j=0}^{\infty} q^j + \sum_{j=0}^{\infty} j q^j \right)
$$

等比数列の和とその導関数より:

  • $\sum_{j=0}^\infty q^j = \frac{1}{1 - q} = \frac{1}{p}$
  • $\sum_{j=0}^\infty j q^j = \frac{q}{(1 - q)^2} = \frac{1 - p}{p^2}$

したがって:

$$
\mathbb{E}[X] = p \left( \frac{1}{p} + \frac{1 - p}{p^2} \right)
= 1 + \frac{1 - p}{p}
= \frac{1}{p}
$$


✅ 分散 $\mathrm{Var}(X)$ の導出

分散は:

$$
\mathrm{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2
$$

まず、$\mathbb{E}[X^2]$ を求めるために:

$$
\mathbb{E}[X^2] = \sum_{k=1}^\infty k^2 (1 - p)^{k - 1} p
= p \sum_{k=1}^\infty k^2 q^{k - 1}
$$

再度 $j = k - 1$ に変換:

$$
= p \sum_{j=0}^\infty (j + 1)^2 q^j
= p \left( \sum_{j=0}^\infty j^2 q^j + 2 \sum_{j=0}^\infty j q^j + \sum_{j=0}^\infty q^j \right)
$$

以下の公式を使用:

  • $\sum_{j=0}^\infty q^j = \frac{1}{1 - q}$
  • $\sum_{j=0}^\infty j q^j = \frac{q}{(1 - q)^2}$
  • $\sum_{j=0}^\infty j^2 q^j = \frac{q (1 + q)}{(1 - q)^3}$

これらをまとめると:

$$
\mathbb{E}[X^2] = p \left( \frac{q(1 + q)}{(1 - q)^3} + \frac{2q}{(1 - q)^2} + \frac{1}{1 - q} \right)
$$

$1 - q = p$ なので、代入して整理すると:

$$
\mathbb{E}[X^2] = \frac{2 - p}{p^2}
$$

したがって分散は:

$$
\mathrm{Var}(X) = \mathbb{E}[X^2] - \left( \mathbb{E}[X] \right)^2
= \frac{2 - p}{p^2} - \left( \frac{1}{p} \right)^2 = \frac{1 - p}{p^2}
$$


✅ モーメント母関数から導出

モーメント母関数:

$$
M_X(t) = \mathbb{E}[e^{tX}] = \sum_{k=1}^\infty e^{tk} (1 - p)^{k - 1} p = \frac{pe^t}{1 - (1 - p)e^t}
\quad \text{(ただし } e^t < \frac{1}{1 - p} \text{)}
$$

微分による導出:

  • $M_X'(t) = \frac{p e^t (1 - p)}{(1 - (1 - p)e^t)^2}$
  • $M_X''(t) = \frac{p e^t (1 - p)\left[ (1 - p)e^t + 1 \right]}{(1 - (1 - p)e^t)^3}$

$M_X'(0) = \frac{p (1 - p)}{(1 - (1 - p))^2} = \frac{p(1 - p)}{p^2} = \frac{1 - p}{p}$

ではなく、実際には:

  • $M_X'(0) = \frac{1}{p} = \mathbb{E}[X]$
  • $M_X''(0) = \frac{2 - p}{p^2}$

より:

$$
\mathrm{Var}(X) = M_X''(0) - (M_X'(0))^2 = \frac{2 - p}{p^2} - \frac{1}{p^2} = \frac{1 - p}{p^2}
$$


# Program Name: geom_distribution_plot.py
# Creation Date: 20250608
# Overview: Visualization of geometric distribution, expected value, and variance using Pokémon example
# Usage: Run in Python environment with matplotlib and scipy installed

# -------------------------------
# Install Required Libraries
# -------------------------------
!pip install numpy matplotlib scipy --quiet

# -------------------------------
# Import Libraries / ライブラリのインポート
# -------------------------------
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import geom

# -------------------------------
# Parameters / 中央管理パラメータ
# -------------------------------
p = 0.15                      # 成功確率 / Probability of success
x = np.arange(1, 21)          # 試行回数(1回目~20回目)/ Number of trials
pmf = geom.pmf(x, p)          # 幾何分布のPMF / Geometric distribution PMF

# 理論値 / Theoretical statistics
expected_value = 1 / p
variance = (1 - p) / (p ** 2)
std_dev = np.sqrt(variance)

# -------------------------------
# Plot / グラフ表示
# -------------------------------
plt.figure(figsize=(10, 6))

# PMF 棒グラフ / Plot PMF as bar graph
plt.bar(x, pmf, color='lightgreen', edgecolor='black')

# 期待値を縦線で表示 / Vertical line for expected value
plt.axvline(expected_value, color='red', linestyle='--', label=f'Expected Value = {expected_value:.2f}')
plt.fill_betweenx([0, max(pmf)], expected_value - std_dev, expected_value + std_dev, 
                  color='red', alpha=0.2, label=f'±1 Std Dev = [{expected_value - std_dev:.2f}, {expected_value + std_dev:.2f}]')

# グラフ設定 / Graph settings
plt.title('Geometric Distribution PMF (p=0.15)')
plt.xlabel('Trial number to first success (k)')
plt.ylabel('Probability P(X=k)')
plt.xticks(x)
plt.grid(axis='y')
plt.legend()
plt.tight_layout()
plt.show()

✅ 多項分布の定義と性質


■ 定義(Definition)

多項分布は、**複数の排反なカテゴリ(k種)**からなる試行を n回繰り返すとき、それぞれのカテゴリが何回出現するかの確率分布です。

  • 各カテゴリ $A_i$ が起きる確率: $p_i$(ただし $\sum_{i=1}^k p_i = 1$)
  • 各カテゴリの出現回数: $x_i$(ただし $\sum_{i=1}^k x_i = n$)

このとき、多項分布の確率質量関数(PMF)は:

$$
P(X_1 = x_1, \dots, X_k = x_k) = \frac{n!}{x_1! \cdots x_k!} \cdot p_1^{x_1} \cdots p_k^{x_k}
$$


■ 二項分布との関係(Relation to Binomial)

2カテゴリ(成功/失敗)の場合($k = 2$)は、これは二項分布と一致します:

$$
P(X = x) = \binom{n}{x} p^x (1 - p)^{n - x}
$$


✅ 例題:じゃんけんマシーンの多項確率

  • $p_{\text{グー}} = 0.2, \quad p_{\text{チョキ}} = 0.3, \quad p_{\text{パー}} = 0.5$
  • $x_{\text{グー}} = 2, \quad x_{\text{チョキ}} = 2, \quad x_{\text{パー}} = 1$, $n = 5$

多項分布の確率は:

$$
P = \frac{5!}{2! \cdot 2! \cdot 1!} \cdot 0.2^2 \cdot 0.3^2 \cdot 0.5^1
= 30 \cdot 0.04 \cdot 0.09 \cdot 0.5 = 30 \cdot 0.0018 = 0.054
$$


✅ 多項分布の期待値・分散・共分散

■ 期待値(Expectation)

各カテゴリの出現回数 $X_i$ の期待値は:

$$
\mathbb{E}[X_i] = n p_i
$$

■ 分散(Variance)

各カテゴリの分散は:

$$
\mathrm{Var}(X_i) = n p_i (1 - p_i)
$$

■ 共分散(Covariance)

カテゴリ $i$ と $j$ の共分散は:

$$
\mathrm{Cov}(X_i, X_j) = -n p_i p_j \quad (i \neq j)
$$

これは、あるカテゴリが増えれば他が減るという負の相関を示す。


✅ Pythonによる実装例

import numpy as np
from scipy.stats import multinomial

# パラメータ設定
n = 5  # 試行回数
probs = [0.2, 0.3, 0.5]  # グー, チョキ, パーの確率
outcome = [2, 2, 1]  # 出現回数(グー2回, チョキ2回, パー1回)

# 確率の計算
pmf = multinomial.pmf(outcome, n, probs)
print(f"じゃんけん多項確率 P = {pmf:.3f}")  # 出力:0.054

# 期待値
expectation = np.array(probs) * n
print("期待値(E[X]):", expectation)

# 分散・共分散行列(共分散行列は対角+非対角成分)
cov_matrix = np.diag(n * np.array(probs) * (1 - np.array(probs))) \
             - n * np.outer(probs, probs)
print("共分散行列(Cov[X]):\n", cov_matrix)

✅ まとめ

指標 数式
確率 $\frac{n!}{x_1! \cdots x_k!} p_1^{x_1} \cdots p_k^{x_k}$
期待値 $\mathbb{E}[X_i] = n p_i$
分散 $\mathrm{Var}(X_i) = n p_i (1 - p_i)$
共分散 $\mathrm{Cov}(X_i, X_j) = -n p_i p_j$

✅ 正規分布の確率密度関数

平均 $\mu$、分散 $\sigma^2$ の正規分布 $\mathcal{N}(\mu, \sigma^2)$ の確率密度関数は:

$$
f(x) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left( -\frac{(x - \mu)^2}{2\sigma^2} \right)
$$


✅ 期待値 $\mathbb{E}[X]$ の導出

$$
\mathbb{E}[X] = \int_{-\infty}^{\infty} x f(x) dx
$$

変数変換:$z = \frac{x - \mu}{\sigma} \Rightarrow x = \sigma z + \mu$

$$
\mathbb{E}[X] = \int_{-\infty}^{\infty} (\sigma z + \mu) \cdot \frac{1}{\sqrt{2\pi}} e^{-z^2/2} dz
$$

積分を分けて:

$$
= \mu \int_{-\infty}^{\infty} \frac{1}{\sqrt{2\pi}} e^{-z^2/2} dz + \sigma \int_{-\infty}^{\infty} z \cdot \frac{1}{\sqrt{2\pi}} e^{-z^2/2} dz
$$

  • 第一項:ガウス積分 = 1
  • 第二項:奇関数 → 積分値 = 0

$$
\Rightarrow \mathbb{E}[X] = \mu
$$


✅ 分散 $\mathrm{Var}(X)$ の導出

分散の定義:

$$
\mathrm{Var}(X) = \mathbb{E}[X^2] - (\mathbb{E}[X])^2
$$

まず、

$$
\mathbb{E}[X^2] = \int_{-\infty}^{\infty} x^2 f(x) dx
$$

同様に変数変換して:

$$
x = \sigma z + \mu \Rightarrow x^2 = \sigma^2 z^2 + 2\sigma\mu z + \mu^2
$$

$$
\mathbb{E}[X^2] = \int_{-\infty}^{\infty} (\sigma^2 z^2 + 2\sigma\mu z + \mu^2) \cdot \frac{1}{\sqrt{2\pi}} e^{-z^2/2} dz
$$

積分を分けて:

$$
= \sigma^2 \cdot \int z^2 \phi(z) dz + 2\sigma\mu \cdot \int z \phi(z) dz + \mu^2 \cdot \int \phi(z) dz
$$

$$
= \sigma^2 \cdot 1 + 0 + \mu^2 = \sigma^2 + \mu^2
$$

よって:

$$
\mathrm{Var}(X) = \sigma^2 + \mu^2 - \mu^2 = \sigma^2
$$


✅ モーメント母関数 $M_X(t)$ を使った導出

モーメント母関数:

$$
M_X(t) = \mathbb{E}[e^{tX}] = \exp\left( \mu t + \frac{1}{2} \sigma^2 t^2 \right)
$$

  • 1階微分:$M_X'(t) = (\mu + \sigma^2 t) \cdot M_X(t)$
  • 2階微分:$M_X''(t) = (\mu + \sigma^2 t)^2 \cdot M_X(t) + \sigma^2 \cdot M_X(t)$

$$
M_X'(0) = \mu, \quad M_X''(0) = \mu^2 + \sigma^2
$$

したがって:

$$
\mathrm{Var}(X) = M_X''(0) - (M_X'(0))^2 = \mu^2 + \sigma^2 - \mu^2 = \sigma^2
$$


✅ 結論まとめ

項目 結果
期待値 $\mathbb{E}[X]$ $\mu$
分散 $\mathrm{Var}(X)$ $\sigma^2$
モーメント母関数 $M_X(t)$ $\exp\left(\mu t + \frac{1}{2}\sigma^2 t^2\right)$

# Program Name: normal_distribution_moment_plot.py
# Creation Date: 20250608
# Overview: Plotting normal distribution and its moment generating function (MGF)
# Usage: Run in Python environment to visualize PDF and MGF of a normal distribution

# -------------------- Install Required Libraries --------------------
!pip install numpy matplotlib sympy --quiet

# -------------------- Import Libraries --------------------
import numpy as np
import matplotlib.pyplot as plt
import sympy as sp

# -------------------- Parameters / 中央管理パラメータ --------------------
mu = 0          # 平均 / Mean
sigma = 1       # 標準偏差 / Standard deviation
x_range = np.linspace(-5, 5, 500)  # 描画範囲 / Plot range
t_range = np.linspace(-2, 2, 400)  # MGF描画範囲 / MGF plot range

# -------------------- Normal PDF / 正規分布の確率密度関数 --------------------
def normal_pdf(x, mu, sigma):
    return 1 / (np.sqrt(2 * np.pi * sigma ** 2)) * np.exp(- (x - mu) ** 2 / (2 * sigma ** 2))

pdf_values = normal_pdf(x_range, mu, sigma)

# -------------------- Moment Generating Function / モーメント母関数 --------------------
def mgf_normal(t, mu, sigma):
    return np.exp(mu * t + 0.5 * (sigma ** 2) * t ** 2)

mgf_values = mgf_normal(t_range, mu, sigma)

# -------------------- Plot: PDF --------------------
plt.figure(figsize=(8, 4))
plt.plot(x_range, pdf_values, label="Normal PDF", lw=2)
plt.title("Normal Distribution PDF")
plt.xlabel("x")
plt.ylabel("Density")
plt.grid(True)
plt.legend()
plt.show()

# -------------------- Plot: MGF --------------------
plt.figure(figsize=(8, 4))
plt.plot(t_range, mgf_values, label="Moment Generating Function", color='orange', lw=2)
plt.title("Moment Generating Function of Normal Distribution")
plt.xlabel("t")
plt.ylabel("M_X(t)")
plt.grid(True)
plt.legend()
plt.show()

✅ ガンマ分布の定義

形状母数 $\alpha > 0$、尺度母数 $\beta > 0$ の ガンマ分布 $X \sim \mathrm{Gamma}(\alpha, \beta)$ の**確率密度関数(PDF)**は:

$$
f(x) = \frac{1}{\Gamma(\alpha)\beta^\alpha} x^{\alpha - 1} e^{-x/\beta} \quad (x > 0)
$$

ここで:

  • $\Gamma(\alpha)$ はガンマ関数で、$\Gamma(\alpha) = \int_0^{\infty} t^{\alpha - 1} e^{-t} dt$
  • $\Gamma(n) = (n - 1)!$(自然数 $n$ の場合)

✅ 特殊ケースと関係

  • $\alpha = 1$ のとき:指数分布 $\mathrm{Exp}(\beta)$ に一致
  • $\beta = 2$, $\alpha = \frac{k}{2}$ のとき:カイ二乗分布(自由度 $k$)に一致

✅ ガンマ分布の性質

項目
期待値 $\mathbb{E}[X]$ $\alpha \beta$
分散 $\mathrm{Var}(X)$ $\alpha \beta^2$
モーメント母関数 $M_X(t)$ $(1 - \beta t)^{-\alpha}$(ただし $t < \frac{1}{\beta}$)

✅ 例題:来客問題

問題:5分ごとに平均1人来るお店で、20人来るまでの時間の期待値を求めよ。

  • $\alpha = 20$, $\beta = 5$
  • $\mathbb{E}[X] = \alpha \beta = 100$

答え:100分(= 1時間40分)


✅ 再生性(加法性)

$$
X_1 \sim \mathrm{Gamma}(\alpha_1, \beta),\quad X_2 \sim \mathrm{Gamma}(\alpha_2, \beta)
$$

独立ならば:

$$
X_1 + X_2 \sim \mathrm{Gamma}(\alpha_1 + \alpha_2, \beta)
$$


✅ Pythonによるガンマ分布の可視化(プロット付き)

ご希望あれば、以下のような内容を Python + matplotlib で可視化可能です:

  • パラメータ $\alpha$ と $\beta$ を変えた複数のガンマ分布
  • 対応する期待値線と分散範囲の描画
  • 指数分布($\alpha=1$)との比較
# 同じコードを改めて再実行(前回のエラーは一時的な実行エラーと想定)
# 再度 Gamma 分布の可視化を実行する

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

# -------------------- Parameters / 中央管理パラメータ --------------------
alphas = [1, 2, 5]          # 形状母数 alpha / Shape parameters
beta = 2.0                  # 尺度母数 beta / Scale parameter (fixed)
x = np.linspace(0, 30, 500) # X軸の範囲 / Range of x values

# -------------------- Plotting / グラフ描画 --------------------
plt.figure(figsize=(10, 6))
for alpha in alphas:
    dist = gamma(a=alpha, scale=beta)  # scipy.stats.gamma のインスタンス生成
    plt.plot(x, dist.pdf(x), label=f'α={alpha}, β={beta}')  # PDF曲線を描画

# グラフ設定 / Plot settings
plt.title('Gamma Distribution PDFs')
plt.xlabel('x')
plt.ylabel('Probability Density')
plt.legend()
plt.grid(True)

# Show the plot
plt.tight_layout()
plt.show()

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?