ロジスティック回帰〜オッズとロジット関数そしてロジスティック関数について

AI
スポンサーリンク

ロジスティック回帰とは

ロジスティック回帰とはいくつかの説明変数から確率を計算して予測するモデルのことです。
従って、回帰という名前になっていますが、実際には分類問題に使われます。
もう少し噛み砕くと、回帰分析と同様の手法を用いながら、結果は連続値を返すのではなく、離散値(確率)を返す分析方法です。
具体例としては、所得金額がいくらになったら家を購入するか予測するときは、説明変数である所得に対して家を買う、買わないの2値を求めることになります。このような場合に使われるものです。
今回はロジスティック回帰の仕組みについての説明です。

ロジスティック回帰で行っている事

ロジスティック回帰は次の2つのことを行います。

  1. 線形回帰モデルと同様に入力特徴量の加重総和を求める
  2. 1の結果をそのまま出力するのではなく、ロジスティック関数を使って確率を出力

ロジスティック回帰の仕組み

線形回帰の一般化

ロジスティク回帰は線形分離可能な対象を分離するアルゴリズムのため、決定境界は直線になります。
決定境界とは、データの分類を行う際に分類の基準となる境界線のことです。
一般的な平面を直線で分割する、つまり決定境界となる式は次のようになります。
$$
\hat y = w[0]\times x[0]+w[1]\times x[1]+ \cdots + w[p]\times x[p]+b
$$
決定境界になるこの式は、回帰モデルでは最小二乗法で求めますが、分類問題では別の方法をとる必要があります。
参考までに、最小二乗法は次の式です。
$$
L= \sum_{n=1}^N(y_n-\hat{y}_n)^2
$$

最小二乗法の説明は「最小二乗法で傾きを求める方法を数学的に理解しよう」を参考にしてください。

さて、ここで線形回帰を一般化することを考えます。
回帰モデル以外にも確率分布にも使えるように設計したモデルのことを一般化線形モデルと言います。

例えば次の例を考えてみましょう。
身長から体重を予測するには回帰モデルで求まる連続的な値を使うことができます。
体重 = a * 身長 + b
ところが、次のように身長からSサイズ、Mサイズ、Lサイズを求める場合は、結果の値を離散的な値にしなければなりません。
そのため、先に示した式 サイズ = a * 身長 + b は連続的な値しか取れず、離散的な値には使えなくなります。

離散的な値を得たい場合は、ひと手間かける必要があります。
その一手間のことをリンク関数といいます。

ロジスティック回帰ではリンク関数にロジット関数を使います。
$$
\log(\frac{p}{1-p}))= a *身長 + b
$$
ロジット関数は数学的に次のようなロジスティック関数にすることができます。
$$
P=\frac{1}{1+exp(ax+b)}
$$
ロジット関数をリンク関数にすることで、回帰式の連続した値は離散型に変わり、確率分布つまりポアソン分布となります。
* ポアソン分布:ポアソン分布とは離散確率分布の一つです。

リンク関数にロジット関数を使うことで、それをロジスティック関数に変形して回帰式の値を0から1の値で表すことができます。
これが、ロジスティック回帰の正体です。

ロジスティック関数とは

ロジット関数やロジスティック関数と言われてもよくわかりませんね。
もう少し詳しく見ていきます。

$$
P(k)=e^{-\lambda}\frac{\lambda^k}{k!}
$$

ロジスティック関数について

オッズ比について

ロジスティック関数はロジット関数から導き出されています。そしてロジット関数はオッズ比から来ていますので、まずはオッズ比とは何かから見ていきます。
オッズ(odds)は、事象がどのくらい起こるのかを表すものです。
ある事象の起こる確率を p として、オッズは p/(1 − p) の値で表されます。
$$
オッズの式\\
\frac{P}{1-P}
$$

確率とオッズの違い

確率は、ある事象がどれだけの頻度で発生するかを示すもので、オッズは事象の起きる確率と起きない確率の比です。

オッズの例

例えば、子供10人に金平糖とチョコレートを見せてどちらが好きか尋ねたとします。
その結果、金平糖が好きと答えた子供が2人、チョコレートと答えた子供が8人とします。
その時のチョコレートのオッズは(8/10) / (2/10) = 8/2 = 4で4倍となります。
逆に金平糖のオッズは2/8 = 0.25になります。
つまり、10人の子供に金平糖とチョコレートどっちが好きかと尋ねたら、チョコレートが好きな子が金平糖が好きな子の4倍になるということです。

以上のオッズの結果からオッズ比を求めることができます。
オッズ比はある事象の、1つの群ともう1つの群とにおけるオッズの比として定義されます。
事象の両群における確率を p(第1群)、q(第2群)とすれば、オッズ比は次のように求めることができます。

$$
オッズ比\\
\frac{\frac{p}{(1 − p)}}{\frac{q}{(1 − q)}}
$$

先ほどの金平糖とチョコレートの例では、金平糖のオッズ比は、0.25 / 4 = 0.0625
逆にチョコレートのオッズ比は 4 / 0.25 = 16となります。

オッズ比で次のような判定ができます。

  • オッズ比が1とは、対象とする条件あるいは事象の起こりやすさが両群で同じということ
  • オッズ比が1より大きい場合は、条件あるいは事象が第1群でより起こりやすいということ
  • 第2群のオッズが0に近づけば、条件あるいは事象が第2群でより起こりにくいということ

なお、オッズ比は必ず0以上になります。
結局、オッズ比は予測したい事象の起こりやすさを1より大きいか1より小さいかで表しています。

* オッズ比とリスク比は違いますので注意してください。
オッズ比とリスク比の違いオッズ比とリスク比の違い

ロジット関数

さて、話を本題に戻します。ロジット関数とは何かです。
その答えは、ロジットはオッズの対数をとったものです。

オッズの対数をとったもののことを対数オッズといい、対数オッズを関数とみなしたものをロジット関数といいます。
わざわざ対数をとるのは数学的に扱いやすくするためでロジット関数は本質的にオッズを表していると考えるとわかりやすいです。

オッズとはある事象の起きる確率と起きない確率の比でした。
数式で表すと次のようなものでした。
$$
オッズの式\\
\frac{P}{1-P}
$$

$$
ロジット関数\\
logit ( p ) = \log(\frac{p}{1-p}) = \log ( p ) − \log (1− p)
$$

また、オッズ比の対数を取ったものをのことを対数オッズ比と言います。

$$
\log\left(\frac{p}{1-p}\cdot\frac{1-q}{q}\right)
$$

なぜ、ロジット関数を使うと嬉しいのか?
それはロジット関数の逆関数がロジスティック関数になります。
ロジスティック関数はどんな値も0から1の値に変えることができますので、つまり確率を求めることができるようになります。

シグモイド関数

ロジスティック関数の特殊なものがシグモイド関数と呼ばれニューラルネットワークなどで活用されます。

シグモイド関数の式
σ(x) = 1 / ( 1 + exp(-x) )

最適値はどのように求めるのか

ロジスティック分析は、ある事象が発生するかしないかを直接的に予測するのではなく、その事象が発生する確率を予測するものです。
そのため、目的変数の値は0と1の間の数値にする必要があります。それはすなわち確率を意味し、0.5より大きいとその事象が発生すると予測し、0.5を下回るとその事件が発生しないと予測できます。

確率が求まると今度は最適化を行う必要があります。
線形回帰では最小二乗法を使いましたが、ロジスティック回帰では尤度関数を使った最尤法が使われます。

尤度関数は次のように表されて、\(t_n\)を1か0にして考えます。(2値分類の場合)
$$
P_n=y_n^{t_n}(1-y_n)^{1-t_n}
$$

全てのデータに当てはめると尤度関数が使えます。

$$
L(\beta)=\prod_{n=1}^{N} y_n^{t_n}(1-y_n)^{1-t_n}
$$

  • \(\prod\) は総乗を表し全て掛け合わせていくことです。
タイトルとURLをコピーしました