Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

一様分布

概要

一様分布(uniform distribution)は、区間[a,b][a, b]上のすべての値が等しい確率密度をもつ連続確率分布である。最も単純な連続確率分布であり、U(a,b)U(a,b)と表記される。

乱数生成の基礎となる分布であり、逆関数法などを通じて他の確率分布に従う乱数を生成する出発点として重要な役割を果たす。

確率密度関数

f(xa,b)={1baaxb0otherwisef(x \mid a, b) = \begin{cases} \dfrac{1}{b-a} & a \leq x \leq b \\ 0 & \text{otherwise} \end{cases}
  • aa: 下限(location parameter)

  • bb: 上限(b>ab > a

累積分布関数

F(x)={0x<axabaaxb1x>bF(x) = \begin{cases} 0 & x < a \\ \dfrac{x-a}{b-a} & a \leq x \leq b \\ 1 & x > b \end{cases}

期待値・分散

E[X]=a+b2E[X] = \frac{a+b}{2}
V[X]=(ba)212V[X] = \frac{(b-a)^2}{12}

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

fig, axes = plt.subplots(1, 2, figsize=[8, 3])

params = [(0, 1), (-2, 2), (0, 5)]
for a, b in params:
    x = np.linspace(a - 1, b + 1, 300)
    pdf = uniform.pdf(x, loc=a, scale=b - a)
    axes[0].plot(x, pdf, label=f"U({a}, {b})")

    cdf = uniform.cdf(x, loc=a, scale=b - a)
    axes[1].plot(x, cdf, label=f"U({a}, {b})")

axes[0].set(title="PDF", xlabel="x", ylabel="f(x)")
axes[0].legend()
axes[1].set(title="CDF", xlabel="x", ylabel="F(x)")
axes[1].legend()
fig.tight_layout()
fig.show()

性質

  • 最大エントロピー性: 区間[a,b][a,b]上の連続分布のうち、エントロピーが最大となるのは一様分布である

  • 逆関数法: UU(0,1)U \sim U(0,1)のとき、F1(U)F^{-1}(U)は累積分布関数FFをもつ分布に従う。これを逆関数法(inverse transform sampling)といい、乱数生成の基本的な手法である

  • 順序統計量: U(0,1)U(0,1)からのnn個の独立な標本のkk番目の順序統計量はベータ分布Beta(k,nk+1)\text{Beta}(k, n-k+1)に従う

応用例

  • 擬似乱数生成の基礎(他の分布からの乱数生成の出発点)

  • モンテカルロシミュレーション

  • ベイズ推定における無情報事前分布

  • 丸め誤差のモデリング

参考文献