おさかなせいざ

おさかなせいざ

プログラミングメモや日記がわりに

一様分布の上限に別の一様分布で生成した値を使うと確率密度関数が対数関数になる理由

以下のツイートを見て確かにそうっぽいなぁと思ったので確認してみました.

上記のツイートでは指数関数とおっしゃられていますが,実際には対数関数になっていたのでその理由について述べます.

はじめに  0\leq x \leq 1 で定義される一様分布 Aの累積密度関数は


P(x \leq a) = a

であらわされます.一様分布なので各値をとる確率は一様に微小  dx です. (ふつうに  P(a) = 1 でもよさそう?) 次に一様分布 Aから得られた値  a を上限とした際の一様分布 B_aについて考えます. このとき, B_a がある値  b 以上を取る確率は


P(b \leq x | a) = 
\begin{cases}
0 & if \ b \gt a \\\
\frac{a-b}{a} & otherwise
\end{cases}

です.A がある値  a を取る確率を微小な値  da として,A で取り得る値  [0,1] 全体で  P(b\leq x| a)積分すれば上側からの累積密度,


\begin{split}
P(b\leq x) &= \int_0^1 P(b\leq x | a) da \\\
&= \int_0^b P(b\leq x | a) da + \int_b^1 P(b\leq x | a) da 
 \\\
&= \int_b^1 \frac{a-b}{a} da \\\
&= [a - b\log a ]_b^1 \\\
&= 1 - 0 - (b - b \log b) \\\
&= 1 -b + b\log b
\end{split}

が得られます.これを下側からの累積密度に直すと

 P(x \leq b) = 1 - P(b \leq x) = b - b\log b

となります.

また 各 b を取りうる確率密度は累積密度の微分なので,


\begin{split}
P(b) &= P(x\leq b)' \\\
&= 1 - 1 - \log b \\\
&= -\log b
\end{split}

となり,対数関数になることがわかりました. random を3段にした場合には同様の展開で


\begin{split}
P(c \leq x) &= \int_0^1 -P(c \leq x | b) \log b\ db \\\
&= \int_0^1 -\frac{b-c}{b} \log b\ db \\\
&= \int_c^1 (\frac{c}{b} - 1) \log b\ db \\\
&= c\int_c^1 \frac{1}{b} \log b\ db  - \int_c^1 \log b\ db\\\
&=  c[\frac{\log^2 b}{2}]_c^1 - [b \log b - b ]_c^1 \\\
&= -c\frac{\log^2 c}{2}  - 0 + 1 + c\log c - c \\\
&= -c\frac{\log^2 c}{2}  + c\log c + 1 - c \\\
&= c(-\frac{\log^2 c}{2}  + \log c - 1) + 1\\\
P(x \leq c) &= 1 - P(c \leq x) = c(1 + \frac{\log^2 c}{2}  - \log c) \\\
P(c) &= P(x \leq c)'  = 1 + \frac{\log^2 c}{2}  - \log c + c(\frac{1}{c}\log c -\frac{1}{c}) \\\
&=  1 + \frac{\log^2 c}{2}  - \log c + \log c - 1 \\\
&= \frac{\log^2 c}{2}
\end{split}

となりました.(どっか間違ってそうで怪しい) この調子で random を多段にしていくと対数関数の多段数乗の関数になりそうです.

 M 段目の確率密度がわかっていればその次も再帰的に求められます. 入れ子の階層が N=M-1 階のとき確率密度は おそらく  P(a_{N'}) = (-1^{N'}) \frac{ {\log}^{N'} a_{N'} }{ {N'}! } になると思われるので以下で証明しましょう.

 N'=Nのとき上記式が成り立つ(ただし自明に P(a_0) = 1)とすると, N'=N+1について,


\begin{split}
P(a_{N+1} \leq x) &= \int_0^1 P(a_{N+1} \leq x | a_N) P(a_N) da_N \\\
&= \int_{a_{N+1}}^1 P(a_N) da_N -\int_{a_{N+1}}^1 \frac{a_{N+1}}{a_N} P(a_N) da_N \\\
&= \int_{a_{N+1}}^1 (-1^{N})\frac{{\log}^N a_N}{N!} da_N -\int_{a_{N+1}}^1 \frac{a_{N+1}}{a_N} (-1^{N}) \frac{{\log}^N a_N}{N!} da_N \\\
&=  (-1^{N})[  \sum_{n=0}^N \frac{(-1)^{N-n}}{n!} a_N {\log}^{n} a_N  ]_{a_{N+1}}^1 - (-1^{N})a_{N+1}[ \frac{1}{N+1} \frac{{\log}^{N+1} a_N}{N!}]_{a_{N+1}}^1 \\\
&=  (-1^{N})\left\{ (-1^{N}) - \sum_{n=0}^N \frac{(-1)^{N-n}}{n!} a_{N+1} {\log}^{n} a_{N+1}  + a_{N+1}\frac{{\log}^{N+1} a_{N+1}}{(N+1)!} \right\} \\\
&=  1 + (-1^{N})\left\{ - \sum_{n=0}^N \frac{(-1)^{N-n}}{n!} a_{N+1} {\log}^{n} a_{N+1}  + a_{N+1}\frac{{\log}^{N+1} a_{N+1}}{(N+1)!} \right\} \\\
P(x \leq a_{N+1} ) &= 1-P(a_{N+1} \leq x)  = (-1^{N})\left\{\sum_{n=0}^N \frac{(-1)^{N-n}}{n!} a_{N+1} {\log}^{n} a_{N+1}  - a_{N+1}\frac{{\log}^{N+1} a_{N+1}}{(N+1)!} \right\} \\\
P(a_{N+1}) &= P(x \leq a_{N+1} )' \\\
&=  (-1^{N})\left\{ \frac{{\log}^N a_{N+1}}{N!} - \left(\frac{{\log}^{N+1} a_{N+1}}{(N+1)!} + \frac{{\log}^{N} a_{N+1}}{(N)!} \right) \right\} \\\
&= (-1^{N+1}) \frac{{\log}^{N+1} a_{N+1}}{(N+1)!}
\end{split}

なので, N'=N+1 においても  P(a_{N'}) が成り立ち数学的帰納法より任意の自然数  N' について証明されました.

一様分布から対数関数が出てくるのは面白いですね.