🟠

ロジスティック回帰 (2値問題)

2023/09/29に公開

はじめに

今回はロジスティック回帰(logistic regression)について、特にyの値が2値の場合を見ていきます。
医学の領域で使われることが多い分析方法です。回帰と名前についていますが、最終的にやっていることは分類です。

ロジスティック回帰の大まかな流れを掴むのが目的。
流れは以下の通り

  1. 設定
  2. ロジスティック回帰曲線
    ※最尤推定量の導出が難しいので次回示す。

設定

観測データ (x_1,y_1),\cdots,(x_N,y_N) \in \mathbb R^p \times \{0,1\}から決定ルール x\in \mathbb R^p \rightarrow y \in \{0,1\}を導きたい。

y=1となる確率をpとおく。
\frac{p}{1-p}をオッズと言い、オッズの対数をとったものが線型結合で表されると考える。
つまり次のようなモデルを考える。

\log \frac{p}{1-p}=\beta_0+\beta_1x_1+\cdots+\beta_px_p=\beta_0+x^T\beta

ただし、x\in \mathbb R^p, \beta \in \mathbb R^p とする。

Q. なぜこのような変換をしたか?

A. \frac{p}{1-p}を対数取ると尺度が合うから。

具体例

  • 10人中1人が合格する。

    このとき確率 p=\frac{1}{10}, オッズは \frac{1}{9}=0.11

    \log\left(\frac{p}{1-p}\right)=-2.2

  • 10人中9人が合格する。

    このとき確率 p=\frac{9}{10}, オッズは\frac{9}{1}=9

    \log\left(\frac{p}{1-p}\right)=2.2

となりこの2つをみると、オッズには対称性がないが、対数を取ると対称性が出て比較しやすくなる。

ロジスティック回帰曲線

このモデルからpを求めると

\begin{align*} &\frac{p}{1-p}=e^{\beta_0+x^T\beta}\\ &p=(1-p)e^{\beta_0+x^T\beta}\\ &p(1+e^{\beta_0+x^T\beta})=e^{\beta_0+x^T\beta}\\ &p=\frac{e^{\beta_0+x^T\beta}}{1+e^{\beta_0+x^T\beta}} =(1+e^{-(\beta_0+x^T\beta)})^{-1} \end{align*}

となる。
最尤推定で(\hat{\beta_0},\hat{\beta})を求めることで、
回帰曲線

\hat{p}=(1+\exp\{-(\hat{\beta_0}+x^T\hat{\beta})\})^{-1}

が求められる。
この最尤推定は普通には解けないのですが、ニュートンラフソン法を用いることで解析的に解くことができます。(証明は長いので次の記事で書きます)

まとめ

今回は、ロジスティック回帰の設定から回帰曲線の導出までやりました。
なぜオッズの対数を取って比較しやすくするテクニックはなるほどなと思いました。
最尤推定の証明はこちらです。
https://zenn.dev/totopironote/articles/1da4388e00306f

最後に、どなたかMarkdownで枠を作ったりする方法ご存知でしたら、ご教示いただけると幸いです。Notionでいうコールアウトみたいにして定義などをみやすくしたいです。

参考文献

  • 鈴木 譲 「統計的機械学習の数理100問 with Python」 p.47

Discussion