ロジスティック回帰を理解する(2)_パラメータ推定について

#はじめに
ロジスティック回帰のパラメータ推定について勉強したことをまとめました。
前回の記事も合わせて参照いただけると幸いです。([ロジスティック回帰を理解する(1)_オッズとロジット変換について](https://qiita.com/g-k/items/86f28982284e877ef83f))

##参考
ロジスティック回帰のパラメータ推定について理解するに当たって下記を参考にいたしました。

- [自然科学の統計学 (基礎統計学)](https://www.amazon.co.jp/dp/4130420674/ref=cm_sw_r_tw_dp_U_x_JVZyEbZCY8F8B)
- [統計分析を理解しよう-ロジスティック回帰分析の概要-
](https://www.nli-research.co.jp/report/detail/id=62065?site=nli)
- [StatQuest: Logistic Regression
](https://youtu.be/yIYKR4sgzI8)
- [Logistic Regression Details Pt 2: Maximum Likelihood
](https://youtu.be/BfKanl1aSG0)
- [最尤法によるパラメータ推定の基礎を理解する(二項分布と正規分布のパラメータの最尤推定量の導出)](https://qiita.com/g-k/items/4b2d557c24558074f07f)
- [ロジスティック回帰を理解する(1)_オッズとロジット変換について](https://qiita.com/g-k/items/86f28982284e877ef83f)


#ロジスティック回帰
##ロジスティック回帰概要
ロジスティック回帰は**あるデータが特定のクラスに属する確率などを推計する際によく用いられるアリゴリズム**です。

目的変数が量的変数のもの(ある月の店の売り上げなど)を予測する時には普通の線形回帰モデルが使用されますが、目的変数が質的変数のもの（このメールはスパムであるか否か、や血液型がA型であるか否かなど）にはそのモデルを直接当てはめることはできません。**目的変数が質的変数であっても線形回帰的な考え方を適用できるように拡張されたものが一般化線形モデル(GLM)でロジスティック回帰はその一種**になります。

ロジスティック回帰自体は下記のような式で表されます。
($\beta$はパラメータ、$p$は出力された確率、$x_1,x_2 \cdots x_n$は説明変数)

```math

\log(\frac{p}{1-p})=\beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + ...+ \beta_{n}x_{n}

```

ロジスティック回帰は普通の線形回帰とは異なり、確率をロジット変換した値($\log(\frac{p}{1-p})$)を予測します。ロジット変換については[以前の記事](https://qiita.com/g-k/items/86f28982284e877ef83f)で解説しているのでそちらをご参照ください。

上記式を変形すると確率$p$は下記のように表されます。

```math

p = \frac{\exp(\beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + ...+ \beta_{n}x_{n})}{1+\exp(\beta_{0} + \beta_{1}x_{1} + \beta_{2}x_{2} + ...+ \beta_{n}x_{n})}

```


##ロジスティック回帰のパラメータ推定
###パラメータ推定概要
**ロジスティック回帰のパラメータ推定には一般的には最尤法を使用します。**線形回帰では最小二乗法を用いてパラメータ推定を行うのが一般的ですが、ロジスティック回帰では最尤法を使用するのがポイントです。

最尤法については[以前の記事](https://qiita.com/g-k/items/4b2d557c24558074f07f)で解説しているのでそちらをご参照ください。


###最尤法を用いたパラメータ推定
最尤法を用いてパラメータ推定の概要について説明します。
あるメールがスパムであるか否かを判定するロジスティック回帰モデルを作成すると想定して最適なパラメータ推定について考えます。

あるメール$i$がスパムであるか否かを判定するファクター(説明変数)を$x_{i,1},x_{i,2} \cdots x_{i,n}$とし、それぞれに掛かるパラメータを$\beta_{1},\beta_{2} \cdots \beta_{n}$とします。すると、メール$i$がスパムである確率$p_i$を予測するロジスティック回帰モデルは下記のように置くことができます。


```math

p_i = \frac{\exp(\beta_{0} + \beta_{1}x_{i,1} + \beta_{2}x_{i,2} + ...+ \beta_{n}x_{i,n})}{1+\exp(\beta_{0} + \beta_{1}x_{i,1} + \beta_{2}x_{i,2} + ...+ \beta_{n}x_{i,n})}

```
また、メール$i$がスパムであれば$1$、スパムであれば$0$とします。

```math

{Y_i = \left\{
\begin{array}{ll}
1 & (メールiがスパムメールである) \\
0 & (メールiがスパムメールでない)
\end{array}
\right.
}

```
この時、あるデータが与えられた時の尤もらしさは(尤度)は下記のように計算することができます。(すべての確率を掛け合わせる。)

```math

\prod_{i=1}^np_i^{Y_i} \left(1-p_i\right)^{1-Y_i}
 

```
この尤度が最大になるようなパラメータを見つけにいくのが最尤法でした。尤度とその尤度に対数を取った対数尤度は単調な関係にあるので、対数尤度が最大になるパラメータを見つけに行くタスクに置き換えることができます。今回の尤度関数を$L(\beta_{1},\beta_{2} \cdots \beta_{n})$と置くと、対数尤度関数は下記のように表すことができます。

```math
{\begin{eqnarray*}

\log(L(\beta_{1},\beta_{2} \cdots \beta_{n}))&=&\log(\prod_{i=1}^np_i^{Y_i} \left(1-p_i\right)^{1-Y_i} ) \\
&=& \sum^n_{i=1}(Y_i・\log(p_i) + (1-Y_i)・\log(1-p_i))

\end{eqnarray*}}

```

この対数尤度関数$\log(L(\beta_{1},\beta_{2} \cdots \beta_{n}))$を最大にするような$\beta_{1},\beta_{2} \cdots \beta_{n}$がロジスティック回帰のパラメータの最尤推定量になります。
ただ上記の式は非常に複雑であるためそのまま解析的の解くことはできません。ニュートン法という近似的に方程式の解を求める手法を使って解く必要がありますが、本記事ではここまでの説明に留めます。

#Next
次はロジスティック回帰を用いて実際にタスクを解いてみたいと思います。