リビン・テクノロジーズの開発部では、有志による輪読会を週1回のペースで行っています。いまは「SLO サービスレベル目標」を課題図書にしています。
先日の輪読会で、「9.2.1 最尤推定」1 の節を読みました。そこで、二項分布の最尤推定 (185ページ) の計算を行ったので、導出の過程を記しておきます。
二項分布の確率密度関数
まず、二項分布の確率密度関数 (binomial density function) は以下の式で表されます。
l(p) =
\begin{pmatrix}
n \\
k \\
\end{pmatrix}
p^k(1-p)^{n-k}
最尤推定ではデータの確率を最大にするパラメーターの値を見つけ出す、とのこと。最尤推定の場合には小さな山形(キャレット)を付けて表します。
\hat{p} = \arg \max_p \> l(p)
微分による最尤推定の導出
上に凸な連続関数において、微分を取ってそれがゼロとなる点が最大値になるので、これを求めます。
積の微分公式から、
\{f(x) g(x)\}' = f'(x)g(x) + f(x)g'(x)
二項分布の確率密度関数の微分は、
$f(x) = p^k, \enspace g(x) = (1-p)^{n-k}$ とすれば
\frac{d l}{dp} =
\begin{pmatrix}
n \\
k \\
\end{pmatrix}
\Big(kp^{k-1}(1-p)^{n-k} - (n -k)p^k(1-p)^{(n-k) -1} \Big)
となります。
これが 0 になればよいので、
\begin{aligned}
kp^{k-1}(1-p)^{n-k} - (n -k)p^k(1-p)^{(n-k) -1} &= 0 \\
kp^{k-1}(1-p)^{n-k} &= (n -k)p^k(1-p)^{(n-k) -1} \\
\end{aligned}
両辺を $(1-p)^{n-k}$ で割って、
kp^{k-1} = (n-k)p^k(1-p)^{-1}
さらに両辺を $p^k$ で割って、
kp^{-1} = (n-k)(1-p)^{-1}
$p^{-1}$ , $(1-p)^{-1}$ をそれぞれ分母にして、
\frac{k}{p} = \frac{n-k}{1-p}
左辺の分母を右辺にかけて、かつ右辺の分母を左辺にかけて、
k-kp = np - kp
両辺に $kp$ を足して、
k = np
これで最尤推定が求められます。
p = \frac{k}{n} = \hat{p}
おしまい。
-
Alex Hidalgo, 山口能迪 監訳, SLO サービスレベル目標, オライリー・ジャパン (2023) , ISBN978-4-8144-0034-8 (P.184-187) ↩