最尤推定とベイズ推定

# 最尤推定
最尤推定とはある確率分布から与えられたデータをもとにもとの確率分布を点推定するものである。
## 点推定
点推定とは与えられたデータから求めたものをそのまま推定値とするものである。他の推定手法としては区間推定などがある。例えば点推定では与えられたデータの標準偏差$\bar\sigma$をそのまま母種団の標準偏差と推定する。一般的に点推定によって求められた推定値は記号の上に^をつける(例では$\hat\sigma$)。

## 数式の定義
ある確率分布$f_D$があり、この確率分布のパラメータは$\theta$とする。この分布から得られたn個のデータを$X_1, X_2,...,X_n$と書く。パラメータ$\theta$の時に確率分布$f_D$からn個のデータを得られる確率を表す式を
$$
P(X_1, X_2, ..., X_n|\theta)=f_D(X_1, X_2, ..., X_n|\theta)
$$
と定義する。これはパラメータ$\theta$であったとき与えられたデータが$X_1, X_2, ..., X_n$のときの条件付き確率を意味する。

## パラメータの決定
最尤推定は与えられたデータが得られる確率が最も高くなるようなパラメータを求める推定法である。つまり、n個のデータ$X_1, X_2, ..., X_n$を得たときに
$$
P(X_1, X_2, ..., X_n|\theta)
$$
が最大となる$\theta$を求めれば良い。この考えの元、最尤推定では尤度関数として
$$
L(\theta) = P(X_1, X_2, ..., X_n|\theta)
$$
と定義し、多くの場合対数を取ってこれが最大となる$\theta$を求める。尤度関数は積で構成されていることが多く計算しづらいが、対数を取ることで和の形に変換でき計算しやすい。また、logは単調な増加関数であるのでこれによって最大値は変わらない。最大値は
$$
\frac{\partial}{\partial\theta}\log L(\theta)=0
$$
となるような$\theta$を求めれば良い。

## 注意すること
$P(X_1, X_2, ..., X_n|\theta)$はパラメータが$\theta$であるとき、データ$X_1, X_2, ..., X_n$を得られる確率であり、データ$X_1, X_2, ..., X_n$を得られたときにパラメータ$\theta$である確率$P(\theta|X_1, X_2, ..., X_n)$ではないことに注意する。もし後者であれば、パラメータが$\theta$である確率を与えられたデータから最大化するとなってしまい、与えられた現象が起こりやすいパラメータが$\theta$であるという考え方と異なる。また、このとき最大となる$\theta$を求めるのがベイズ推定である。

# ベイズ推定
ベイズ推定は[ベイズの定理](https://qiita.com/KokiSakano/items/28ec6c700897e1e9d928)を用いて与えられたデータ(事実)から分布(原因)を確率的に推定する手法である。
## 数式
データ$X_1, X_2, ..., X_n$が与えられる確率を$P(X)$とする。また、パラメータが$\theta$である確率を$P(\theta)$とする。
## パラメータの決定
パラメータが$\theta$であるときにデータ$X_1, X_2, ...,X_n$が与えられる条件付き確率を$P(\theta｜X_1, X_2, ...,X_n)$を求める。これはベイズの定理により
$$
P(\theta|X_1, X_2, ...,X_n) = \frac{P(X_1, X_2, ...,X_n|\theta)P(\theta)}{P(X_1, X_2, ...,X_n)}
$$
と変形できる。ベイズ推定を行うときは確率$P(\theta)$や、$P(X_1, X_2, ...,X_n)$は事前分布として、あらかじめおおよその値が与えられている。つまり、事前分布とパラメータが$\theta$であるとき$P(X_1, X_2, ...,X_n|\theta)$が与えられる条件付き確率を組み合わせて求めることができる(事前の情報と得られた情報を加味して求める。最尤推定は得られた情報のみで求める。)。そして、それらによって求められた$P(\theta|X_1, X_2, ...,X_n)$は与えられたデータが$X_1, X_2, ...,X_n$だったときにパラメータが$\theta$である確率であるので、これが最大となる$\theta$は$X_1, X_2, ...,X_n$が得られたことによって更新された$\theta$と考えられる(最大を求めるのは最尤推定と同様)。

## 注意すること
- 事前分布が正しくなければ、正しいパラメータを得ることができないことに注意する。
- 事前分布$P(X_1, X_2, ...,X_n)$は
$$
P(X_1, X_2, ...,X_n) = \sum_{\theta} P(X_1, X_2, ...,X_n|\theta)P(\theta)=(const)
$$
より、$P(\theta|X_1, X_2, ...,X_n) \propto \ P(X_1, X_2, ...,X_n|\theta)P(\theta)$とされることが多い。


# 例題
コインをn回投げてm回表になった。このとき使用したコインの表が出る確率を求める。

## 最尤推定
コインの表が出る確率を$p$としてこれをパラメータとしたとき、コインをn回投げてm回表になる確率は尤度関数となる。これは
$$
L(p) = {}_n C_m p^m (1-p)^{n-m}
$$
である。両対数を取ると
$$
\log(L(p)) = \log({}_n C_m) + m\log(p) + (n-m)\log(1-p)
$$
となる。さらに$p$で微分すると、
$$
\frac{\partial}{\partial p} \log(L(p)) = \frac{m}{p} - \frac{n-m}{1-p}
$$
となり、これが０となるときの$p$は$\frac{m}{n}$となる。よって最尤推定によって求められたコインの表が出る確率は$\frac{m}{n}$となる。これは単純に投げた回数を表の出た回数で割ったものと同じである。

## ベイズ推定
事前分布としてコインを100回投げたとき、50回表がでると仮定する(多くのコインは$\frac{1}{2}$で表になるだろうから)。この時の分布は以下の様になる。
$$
P^{pre}(p) = (const) p^{50} (1-p)^{50}
$$
ここにn回投げてm回表になる確率を加えると、
$$
P(p) = (const) p^{50+m} (1-p)^{50+n-m}
$$
となる。これを最尤推定と同様に対数を取って微分すると以下の様になる。
$$
\frac{\partial}{\partial p}\log(P(p)) = \frac{50+m}{p} - \frac{50+n-m}{1-p}
$$
これが0となる$p$は$\frac{50+m}{50+n}$である。よってベイズ推定によって求められたコインが表になる確率は$\frac{50+m}{50+n-m}$である。

## 違い
最尤推定は得られたデータのみで推定するので信頼性が高いが、データ数が少ないとランダム性に依存してしまう。それに対してベイズ推定は事前分布を生かして推測するので、少ないデータ数でもある程度適切な値を得ることができるが、事前情報の信頼が低いときは良い値が出ない。
上の例で3回中2回表が出たとすれば、最尤推定では約66%、ベイズ推定では約50.4%となる。振ったコインが表となる確率が50%とする。この場合でも3回中2回表になることは当然起こり得るが、最尤推定で６６%と推定されてしまう。これは少ない回数ではうまく推定できないことを表している。逆にベイズ推定では50%であるという事前分布を利用しているので極めて近い値となる。振ったコインが表となる確率が７5%であったと考える。この場合でも3回中2回表になることは当然起こり得るが、ベイズ推定では事前分布で50%であると仮定してしまっているので50.4%と離れた値を得てしまう。逆に最尤推定は得られたデータのみで推定しているので、このような違いに振り回されることはない。このようにベイズ推定を行うときは事前分布が正しいかどうかこの点を強く注意する必要がある。このよう二つの手法には一長一短がある。