尤度と最尤推定についての説明ができる(尤度関数、ネイマンの分解定理、十分統計量)

# データサイエンティスト スキルチェックリストver.3

『[データサイエンティスト スキルチェックリストver.3](https://www.datascientist.or.jp/common/docs/skillcheck_ver3.00.pdf)』はデータサイエンティストに必要とされるスキルをチェックリスト化したもので、データサイエンティストに求められるスキルを「ビジネス力」「データサイエンス力」「データエンジニアリング力」の３分野に分けて定義したものです。

本記事では、データサイエンス力のチェックリストNo.17にある項目について、学んだことをまとめてみます。

スキルカテゴリ | スキルレベル | サブカテゴリ | チェック項目
---------------|--------------|--------------|---------------------------------------------------------------------------------
基礎数学       | ★★           | 統計数理基礎 | 尤度と最尤推定についての説明ができる（尤度関数、ネイマンの分解定理、十分統計量）


# 尤度関数

まずは[Wikipedia](https://ja.wikipedia.org/wiki/%E5%B0%A4%E5%BA%A6%E9%96%A2%E6%95%B0)を参照すると、以下のように書かれています。

> 尤度関数（ゆうどかんすう、英: likelihood function）とは統計学において、ある前提条件に従って結果が出現する場合に、逆に観察結果からみて前提条件が「何々であった」と推測する尤もらしさ（もっともらしさ）を表す数値を、「何々」を変数とする関数として捉えたものである。また単に尤度ともいう。


例えば、(普通に考えれば確率1/2の)コインを投げたとき、10回投げたら9回表で1回裏だったとします。
こうなると「このコインに何か仕込まれてるのでは？」と疑うわけです。
この例では、```観察結果```は『9回表で1回裏が出た』であって、```前提条件```は『このコインが確率bで表が出る』ということになります。

表が出る確率Bがbで確定(B=b)しているときに、とある結果Aが出る確率は、条件付き確率を使って

```math
P(A|B=b)
```

と表せます。逆に結果Aが確定しているときは、この条件付確率はbの関数となります。
これを尤度関数といいます。
結果が確認されていることをもとにして前提条件を見ているので、尤度関数は

```math
L(b|A)
```

と表します。Lは尤度(Likelihood)のLです。



# 最尤推定

最尤推定とは、手元の観測結果からみて、どのような条件が尤もらしいかを推定することを言います。
上の例の場合は、『9回表が出て1回裏が出た』ときに、『表が出る確率がどの場合が最もあり得るか』ということを推測することになります。

## コインの例 (二項分布)で考える

確率pのコインをn回投げた時、表がx回出る確率関数は

```math
f(x|n,p) = {}_nC_p p^x (1-p)^{n-x}
```
となります(nは固定)。逆に、観測結果が得られてx=mが確定したときのpの尤度関数は

```math
L(p|x=m,n) = {}_nC_p p^m (1-p)^{n-m}
```
です。この関数が最大になるようなpを考えます。
一般的に、最大値(正確には極大値)を求めるときには、微分して0になる値を求めます。
さらに、最尤推定の計算においては、この尤度関数に対数をとった対数尤度関数を微分することが多いです。

```math
l(p|x=m,n) = \log L(p|x=m,n)
```

以下の2点が対数尤度関数がよく使われる理由となっています。

* 対数関数は0より大きい定義域で単調増加のため、尤度関数と対数尤度関数が最大を取るときのpが一致する
* 対数を取ることで、積が和の形になり、微分計算が楽になる

さて、対数尤度関数を考えます。

```math
\begin{align}
l(p|x=m,n) &= \log[{}_nC_p p^x (1-p)^{n-x}] \\
&= \log [\frac{n!}{x!(n-x)!} p^x (1-p)^{n-x}] \\
&= \log(n!) - \log(x!) - \log[(n-x)!] + x\log p + (n-x)\log (1-p)
\end{align}
```
これを微分すると

```math
\begin{align}
\frac{\partial  l(p|x=m,n)}{\partial p } &= \frac{m}{p} - \frac{n-m}{1-p}
\end{align}
```

であり、これが0となる$p$は$m/n$です。
つまり10回投げて、9回表が出ている場合、表が出る確率は0.9が最も尤もらしいということになります。

しかし、今回の場合、10回投げて9回表が出ただけです。
これが100回投げて90回表、1000回投げて、900回表となっていけば、0.9はより尤もらしいと言えそうです。
もちろん、今回の結果が普通のコインで、約0.97%の確率をたたき出したとも言えます (${}_{10}C_9 \times(0.5)^9 \times 0.5$)

つまり**少ない観測結果では過学習の恐れがある**というのが最尤推定の欠点と言えます。


## Possion分布の場合

確率関数は$\lambda>0$で

```math
f(x|\lambda) = \frac{\lambda^x}{x!} e^{-\lambda}
```
となる。n個の観測結果$x=(x_1,\dots,x_n)$が確定したとき、$\lambda$の尤度関数は

```math
L(\lambda|x) = \prod_{i=1}^n{\frac{\lambda^{x_i}}{x_i!} e^{-\lambda}} = \frac{\lambda ^{\sum_{i=1}^n x_i}}{\prod_{i=1}^n x_i!}e^{-n\lambda}
```
であり、対数尤度関数は、

```math
l(\lambda|x) = \sum_{i=1}^n x_i \log \lambda - \sum_{i=1}^n \log (x_i!) - n\lambda
```

となります。最大値(極大値)を求めるために$\lambda$で微分すると

```math
\begin{align}
\frac{\partial  l(\lambda|x)}{\partial \lambda } &= \frac{\sum_{i=1}^n x_i}{\lambda} - n
\end{align}
```

となり、これが0となる$\lambda$は$\frac{1}{n}\sum_{i=1}^n x_i$です。


## 正規分布の場合

確率関数は$-\infty<\mu<\infty, 0<\sigma<\infty$で

```math
f(x|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp{\left(-\frac{(x-\mu)^2}{2\sigma^2} \right)}
```
となる。n個の観測結果$x=(x_1,\dots,x_n)$が確定したときの尤度関数は

```math
L(\mu,\sigma^2|x) = \prod_{i=1}^n{\frac{1}{\sqrt{2\pi\sigma^2}} \exp{\left(-\frac{(x_i-\mu)^2}{2\sigma^2} \right)}} = \frac{1}{(\sqrt{2\pi\sigma^2})^n} \exp{\left(-\frac{\sum_{i=1}^n (x_i-\mu)^2}{2\sigma^2} \right)}
```
であり、対数尤度関数は、

```math
l(\mu,\sigma^2|x) = -n \log \sqrt{2\pi\sigma^2} - \frac{1}{2\sigma^2} \sum_{i=1}^n (x_i-\mu)^2
```

となります。最大値(極大値)を求めるために$\lambda$と$\sigma^2$で微分すると

```math
\begin{align}
\frac{\partial  l(\mu,\sigma^2|x)}{\partial \mu } &= \frac{1}{\sigma^2} \left( \sum_{i=1}^n x_i - n\mu \right) \\
\frac{\partial  l(\mu,\sigma^2|x)}{\partial \sigma^2 } &= \frac{n}{2\sigma^2} + \frac{1}{2(\sigma^2)^2} \left( \sum_{i=1}^n x_i - n\mu \right)^2
\end{align}
```

となり、これが0となる$\mu$は$\frac{1}{n}\sum_{i=1}^n x_i$で、$\sigma^2$は$\frac{1}{n}\sum_{i=1}^n (x_i - \mu)^2$です。



# 十分統計量

十分統計量とは、最尤推定量を求めるのに十分なデータの集合です。
例えば、Possion分布の場合、最尤推定量が

```math
\lambda = \frac{1}{n}\sum_{i=1}^n x_i
```

ということで、$\lambda$を求めるには、

```math
T(x) = \sum_{i=1}^n x_i
```

がわかれば「十分」、個別のデータ($x_i$)の情報は必要ありません。
もちろん、個別のデータがわかるのも「十分」と言えます。

例えば、正規分布の場合、

```math
\begin{align}
\mu &= \frac{1}{n}\sum_{i=1}^n x_i \\
\sigma^2 &= \frac{1}{n}\sum_{i=1}^n (x_i - \mu)^2 = \frac{1}{n}\sum_{i=1}^n x_i^2 - \mu^2
\end{align}
```
であるため、十分統計量としては、

```math
\begin{align}
T(x) &= (\sum_{i=1}^n x_i,\sum_{i=1}^n x_i^2)
\end{align}
```

が考えられます。しかし、これ以外にも

```math
\begin{align}
T(x) &= (x_1,\dots,x_n) \\
T(x) &= (x_1,\sum_{i=2}^n x_i,\sum_{i=2}^n x_i^2)
\end{align}
```
といくつかの十分統計量が考えられます。


## フィッシャーの因子分解定理

上記を踏まえたうえで、十分統計量の見分け方として、**フィッシャーの因子分解定理**が知られています。

---
データXが与えられた時の、$\Theta$の尤度関数を$L(\Theta|X)$とする。
この時、T(X)が$\Theta$の**十分統計量**である条件は、以下のように表せることである。

```math
L(\Theta|X) = g_\Theta(T(X)) \times h(X)
```
---

この形になっていた場合、対数尤度関数は

```math
l(\Theta|X) = log(g_{\Theta}(T(X)) + h(X)
```

であり、第二項は$\Theta$で微分すると消えてしまいます。
つまり、$h(X)$は最尤推定量を求める際には、関係のない部分となります。

十分統計量の情報を知っていれば、最尤推定量を求める際に、サンプルデータの全情報を知らなくても良いことが十分統計量の最大の利点と言えます。

## 補足：完備十分統計量

十分統計量の説明において、正規分布の十分統計量には

```math
\begin{align}
T(x) &= (\sum_{i=1}^n x_i,\sum_{i=1}^n x_i^2) \\
T(x) &= (x_1,\dots,x_n) \\
T(x) &= (x_1,\sum_{i=2}^n x_i,\sum_{i=2}^n x_i^2)
\end{align}
```

と、いくつか存在することを紹介しました。
では、この中で最も情報が凝縮された十分統計量はどれでしょうか。
このような十分統計量を**完備十分統計量**と言います。

---
完備十分統計量とは、十分統計量$T(X)$の人の関数$g(T)$において、

```math
E_\theta[g(T)]=0\ (\forall\ \theta)\ \ \  \Rightarrow \ \ \ g(T)=0 
```
が成り立つ$T(X)$のことを言う。 
 
---

詳細は割愛しますが、実際に計算すると、

```math
\begin{align}
T(x) &= (\sum_{i=1}^n x_i,\sum_{i=1}^n x_i^2)
\end{align}
```

以外の、十分統計量は、全ての$\theta$に対して$E_\theta[g(T)]=0$となる関数$g(T)$が0以外に存在します。

※[リンク](http://www012.upp.so-net.ne.jp/doi/math/anova/sufficientstatistic.pdf)で紹介されています。


# 参考資料

* [尤度関数-Wikipedia](https://ja.wikipedia.org/wiki/%E5%B0%A4%E5%BA%A6%E9%96%A2%E6%95%B0)
* [最尤推定量とは？初めての人にもわかる解説](https://to-kei.net/estimator/maximum-likelihood-estimation/)
* [土居. 最尤法と十分統計量](http://www012.upp.so-net.ne.jp/doi/math/anova/sufficientstatistic.pdf)
* [土井. 完備十分統計量についての補足](http://www012.upp.so-net.ne.jp/doi/math/anova/sufficientstatistic2.pdf)