jiku log

データサイエンスの核心を掴む : 学びと発見の記録

一様分布の最尤推定~尤度方程式の罠~ #統計検定

はじめに

統計検定1級の2019年 統計数理 問3において,連続一様分布(以下,単に「一様分布」と記載する)の問題が出題された。一様分布について,問題集で「一様分布の最尤推定」という問題があり,つまずいたことがあったので,考え方を整理した。

最尤推定

最尤推定は,統計モデルのパラメータ推定手法ではおなじみの方法で,機械学習でも登場する手法である。
パラメータ \thetaを持つ確率密度関数 f(x| \theta)について,データ X = (X_1, ..., X_n)が与えられているときに,尤度関数


 \displaystyle  L(\theta | X) = \prod_{i=1}^n f(X_i | \theta)
や,その対数を取った対数尤度関数を最大にするような \theta = \hat{\theta}_{MLE}を求めるというものである。

具体的な解き方としては,尤度方程式


 \displaystyle  \frac{\partial}{\partial \theta} L(\theta | X) = 0
 \thetaについて解き,得られた解を \hat{\theta}_{MLE}とおくといったことが挙げられる。

一様分布のパラメータの最尤推定

一様分布

あらためて,一様分布の定義を確認する。確率変数 Xが閉区間 [a, b ]上の一様分布にしたがうとは, X確率密度関数


\begin{equation}
f_X(x|a, b)=
\begin{cases}
1/(b - a) & \text{if $a \leq x \leq b$,} \\
0 & \text{otherwise}
\end{cases}
\end{equation}

で定義される。
今回は,パラメータが \theta( \gt 0)のみの一様分布


\begin{equation}
f_X(x| \theta )=
\begin{cases}
1/ \theta & \text{if $0 \leq x \leq \theta$,} \\
0 & \text{otherwise}
\end{cases}
\end{equation}

を考えよう。

一様分布のパラメータの最尤推定 : 誤った手順

以下の流れは,私が初めてこの問題に対峙した時にしてしまったミスである。
一様分布の定義に沿って,尤度関数を考えると,


 \displaystyle  L(\theta | X) = \prod_{i=1}^n f(X_i | \theta) = \theta ^{-n}
となる。対数尤度関数は,

 \displaystyle  l(\theta | X) = -n \log{\theta}
となる。
パラメータ \theta最尤推定量を求める場合,対数尤度関数を最大にするような \thetaを求めればよいので,対数尤度関数を \theta微分したものを0とおいた尤度方程式を解けばよい。

 \displaystyle \frac{\partial}{\partial \theta} l(\theta | X) = \frac{\partial}{\partial \theta} (-n \log{\theta}) = - \frac{n}{\theta} = 0

ここでミスに気付くのである。これでは, \thetaについて解くことができない。

データの可視化

一様分布のパラメータの最尤推定に関する正しい手順を解説する前に,パラメータの推定値に当たりをつけてみよう。
データの可視化はデータサイエンスの基本なので,一様分布 f(x|\theta) = U[0, \theta]について, \theta = 1とした場合の確率密度関数と,この確率密度関数にしたがう乱数を図示してみよう。

確率密度関数の形を見ると,値が 1/\thetaから0に切り替わる点が \thetaである。また乱数は [0, \theta]の範囲で発生するので,「発生した乱数のうち最大値である X_{max} \thetaに近い値になる」,すなわち「 \thetaの推定値は, X_{max}である」と推察することができる。

一様分布のパラメータの最尤推定 : 正しい手順

先ほど,一様分布の尤度関数を


 \displaystyle  L(\theta | X) = \prod_{i=1}^n f(X_i | \theta) = \theta ^{-n}
示したが,実はこれは誤りである。なぜならば,この確率密度関数にしたがう変数は,

 \displaystyle  0 \leq X_1, ..., X_n \leq \theta  \\
 \Leftrightarrow 0 \leq X_{min} \leq ... \leq X_{max} \leq \theta

のように取りうる値の範囲が決まっているからだ。

定義関数


\begin{equation}
I_{[A]}=
\begin{cases}
1 & \text{if $A$ is true,} \\
0 & \text{otherwise}
\end{cases}
\end{equation}
を用いると,一様分布の尤度関数は以下のように書ける。


 \displaystyle  L(\theta | X) = \prod_{i=1}^n f(X_i | \theta) = \theta ^{-n} I_{[0 \leq X_{min} ]} I_{[X_{max} \leq \theta ]}

このように表現することで,サンプルの値の範囲の情報や, \thetaの値の範囲の情報が盛り込むことができる。

この尤度関数は,値が不連続に変化する定義関数を含んでいるので,微分することができない。そのため尤度方程式を用いることができない。
ただ最尤法を用いたパラメータ推定は,尤度関数を最大化するパラメータを求めることなので,

  •  \thetaの範囲は X_{max} \leq \theta
  •  \theta ^{-n}は単調減少関数

であることに注意すると,上記の尤度関数は \theta = X_{max}で最大値を取る,すなわち最尤推定量は \hat{\theta}_{MLE} = X_{max}であることが分かる


まとめと教訓

一様分布のパラメータの最尤推定において,私が陥いった罠について説明した。最尤法はあくまで,尤度関数を最大化するパラメータを求めることであることを念頭に置いていきたい。