離散一様分布の期待値と分散

離散型確率的事象の$${U:\{1,\cdots,N\}}$$が同確率で起こる確率質量関数は、$${f(x)=\displaystyle{\frac{1}{N}}}$$で与えられる。
これから、期待値と分散は、
$${E[x]=\displaystyle{\sum\frac{x}{N}=\frac{1}{N}\frac{N(N+1)}{2}=\frac{N+1}{2}}}$$
$${E[x^2]=\displaystyle{\sum\frac{x^2}{N}=\frac{1}{N}\frac{N(N+1)(2N+1)}{6}=\frac{(N+1)(2N+1)}{6}}}$$
$${V[x]=E[x^2]-E^2[x]=\displaystyle{\frac{(N+1)(2N+1)}{6}-\frac{(N+1)^2}{4}=\frac{N^2-1}{2}}}$$
より一般的な上限と下限のある、$${U:\{a,a+1,\cdots, b\}, \ -\infty < a \le b < \infty}$$の場合、$${f(x)=\displaystyle{\frac{1}{b-a+1}}}$$で与えられる。
よって、
$${E[x]=\displaystyle{\sum_{x=a}^{x=b}\frac{x}{b-a+1}=\frac{1}{b-a+1}\sum_{x=1}^{b-a+1}(a-1+k)}}$$
$${\displaystyle{=\frac{1}{b-a+1}\{(a-1)(b-a+1)+\frac{(b-a+1)(b-a+2)}{2}\}=\frac{a+b}{2}}}$$

$${E[x^2]=\displaystyle{\sum_{x=a}^{x=b}\frac{x^2}{b-a+1}=\frac{1}{b-a+1}\sum_{x=1}^{b-a+1}(a-1+k)^2}}$$
$${\displaystyle{=(a-1)^2 + (a-1)(b-a+2) + \frac{(b-a+2)(2b-2a+3)}{6}}}$$

$${V[x]=E[x^2]-E^2[x]=\displaystyle{\frac{1}{12}(b-a)^2+ \frac{1}{6}(b-a)=\frac{(b-a)(b-a+2)}{12}}}$$

$${[0.0,1.0)}$$領域の一様分布に従う乱数をpythonで発生させるコードは、numpyを使って以下のように実装する。

import numpy as np
from numpy import random as rand
import matplotlib.pyplot as plt
rand.seed(0)
randnum=1_000_000

uni=rand.random(randnum)
bins=100
plt.title('(0,1] uniform')
plt.hist(uni, density=True, bins=bins)  
plt.ylabel('Probability')
plt.xlabel('Data');

また、任意の実数領域の一様分布に従う乱数はnumpyのrandom.uniformで以下のように実装する。

uni = rand.uniform(-2,5,randnum)
plt.hist(uni, density=True, bins='auto') 
plt.title('[-2,5) uniform')
plt.ylabel('Probability')
plt.xlabel('Data');

一様分布に従う整数乱数は、randintで生成される。

uniInt = rand.randint(10, size=randnum)
plt.hist(uniInt, density=True, bins='auto')
plt.title('integer <10 uniform random')
plt.ylabel('Probability')
plt.xlabel('Data');


この記事が気に入ったらサポートをしてみませんか?