統計学 – 離散一様分布

概要

連続確率分布の1つである離散一様分布について解説します。

確率関数

確率変数 XX が次のような確率関数をもつとき、XX は区間 [a,b][a, b] の離散一様分布 (discrete uniform distribution) に従うという。

fX(x)={1nx=a,a+1,,b0その他の場合 f_X(x) = \begin{cases} \frac{1}{n} & x = a, a + 1, \cdots, b \\ 0 & その他の場合 \end{cases}

ただし、n=ba+1n = b – a + 1 とする。

累積確率関数

x<ax < a の場合、fX(x)=0f_X(x) = 0 なので、

P(Xx)=0 P(X \le x) = 0

axba \le x \le b の場合、

P(Xx)=k=ax1n=xa+1n P(X \le x) = \sum_{k = a}^{\lfloor x \rfloor} \frac{1}{n} = \frac{\lfloor x \rfloor – a + 1}{n}

x>bx > b の場合、fX(x)=0f_X(x) = 0 なので、

P(Xx)=k=ab1n=ba+1n=1 P(X \le x) = \sum_{k = a}^b \frac{1}{n} = \frac{b – a + 1}{n} = 1

よって、

P(Xx)={0x<axa+1naxb1x>b P(X \le x) = \begin{cases} 0 & x < a \\ \frac{\lfloor x \rfloor – a + 1}{n} & a \le x \le b \\ 1 & x > b \end{cases}

確率関数である

k=ab1n=ba+1n=1 \sum_{k = a}^b \frac{1}{n} = \frac{b – a + 1}{n} = 1

期待値

E[X]=x=abx1n=1n12n(a+b)等差数列の和の公式=a+b2 \begin{aligned} E[X] &= \sum_{x = a}^b x \frac{1}{n} \\ &= \frac{1}{n} \frac{1}{2}n(a + b) \quad \because 等差数列の和の公式 \\ &= \frac{a + b}{2} \\ \end{aligned}

分散

E[X2]=x=abx21n=1n16(ba+1)(2a2+2aba+2b2+b)二乗和の公式=16(2a2+2aba+2b2+b)n=ba+1 \begin{aligned} E[X^2] &= \sum_{x = a}^b x^2 \frac{1}{n} \\ &= \frac{1}{n} \frac{1}{6} (b – a + 1) (2a^2 + 2ab -a + 2b^2 + b) \quad \because 二乗和の公式 \\ &= \frac{1}{6} (2a^2 + 2ab – a + 2b^2 + b) \quad \because n = b – a + 1 \\ \end{aligned}

x=abx2\sum_{x = a}^b x^2 – Wolfram|Alpha

Var[X]=E[X2](E[X])2=16(2a2+2aba+2b2+b)(a+b)24=a2+b22ab2a+2b12=(ba+1)2112=n2112 \begin{aligned} Var[X] &= E[X^2] – (E[X])^2 \\ &= \frac{1}{6} (2a^2 + 2ab -a + 2b^2 + b) – \frac{(a + b)^2}{4} \\ &= \frac{a^2 + b^2 -2ab -2a + 2b}{12} \\ &= \frac{(b – a + 1)^2 – 1}{12} \\ &= \frac{n^2 – 1}{12} \end{aligned}

標準偏差

Std[X]=Var[X]=n2122 Std[X] = \sqrt{Var[X]} = \frac{\sqrt{n^2 – 1}}{2 \sqrt{2}}

積率母関数

mX(t)=E[etX]=1nx=abetxdx=e(b+1)teatn(et1) \begin{aligned} m_X(t) &= E[e^{tX}] \\ &= \frac{1}{n} \sum_{x = a}^b e^{tx} dx \\ &= \frac{e^{(b + 1)t} – e^{at}}{n (e^t – 1)} \end{aligned}

x=abetx\sum_{x = a}^b e^{tx} – Wolfram|Alpha

scipy.stats の離散一様分布

scipy.stats.randint で離散一様分布に従う確率変数を作成できます。

In [2]:
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
from scipy.stats import randint

sns.set(style="white")

X = randint(2, 9)
Python

サンプリング

In [3]:
x = X.rvs(size=10)
print(x)
Python
[1 4 2 5 8 3 2 2 5 2]

確率質量関数

In [4]:
x = np.arange(-1, 12)
y = X.pmf(x)

fig, ax = plt.subplots()
ax.stem(x, y, use_line_collection=True)
ax.grid()

plt.show()
Python

累積分布関数

In [5]:
x = np.arange(-1, 12)
y = X.cdf(x)

fig, ax = plt.subplots()
ax.step(x, y, where="post")
ax.grid()

plt.show()
Python

統計量

In [6]:
print("mean", X.mean())
print("var", X.var())
print("std", X.std())
Python
mean 5.0
var 6.666666666666667
std 2.581988897471611

コメント

コメントする