統計学と機械学習に共通する方法:(1)ロジスティック回帰

はじめに

統計学機械学習、どちらも現代のデータ分析方法としてなくてはならないものだ。そこには共通して使われている手法もたくさんある。一方で、微妙な定義の違い、考え方の違いもあるように感じる。
今回は「ロジスティック回帰」を統計学機械学習それぞれの文脈から見てみたいと思う。

ロジスティック回帰の数学的定義

いま、AとBという2つの状態をとる結果変数(例えば、疾患の発症あり・なし)に関心があるものとする。結果変数がAになる(Bになる、でもよい)確率に影響を与えるような変数(以下では「説明変数」とする)が考えられる時、両者の関係をモデル化する方法の1つに「ロジスティック回帰」がある。
 i番目の解析単位(例えば、人とか、画像とか)の結果変数がAになる確率を \pi_i、説明変数を x_{i1}, \dots, x_{ip}とする。ロジスティック回帰は、以下の式で関係性を表現する:

 \displaystyle
\log \left( \frac{\pi_i}{1-\pi_i} \right) = \alpha + \beta_1 x_{i1} + \dots + \beta_p x_{ip} \hspace{20pt} (1)
左辺は結果変数がAになるオッズの対数をとったものであり、その大きさは様々な説明変数の足し算で表されるとしている。モデルのパラメータである \alpha, \beta_1, \dots, \beta_pは通常、最尤法によって推定する(ただし \alphaは通常関心を持たれることはない)。
このようなモデル化によって、個々の説明変数が結果変数に与える影響の大きさを評価することもできるし、逆にある説明変数の組み合わせをもつ場合に結果変数がAになるかBになるかの予測も可能となる。

統計学の中でのロジスティック回帰

いろいろな分野で使われていると思うが、医学分野では、ある疾患発生のリスクを推定するための疫学研究で用いられることが多い。Lachin(2020)[1]には、虚血性心疾患のリスク因子についてロジスティック回帰で評価する例がある。リスク因子(説明変数)として挙げられているのは高脂血症の有無、喫煙の有無、高血圧の有無である。虚血性心疾患の発症確率を \pi_i高脂血症の有無を x_{i1}、喫煙の有無を x_{i2}、高血圧の有無を x_{i3}とすると、ロジスティック回帰モデルは

 \displaystyle
\log \left( \frac{\pi_i}{1-\pi_i} \right) = \alpha + \beta_1 x_{i1} + \beta_2 x_{i2} + \beta_3 x_{i3}
である。ただし、 x_{i1}, x_{i2}, x_{i3}はそれぞれ有の場合1、無の場合0をとるものとする。
パラメータ \beta_1, \beta_2, \beta_3の推定された値から、虚血性心疾患に関する各リスク因子のオッズ比を推定することができる。ただしこの推定値は、「他のリスク因子を調整したときの」オッズ比である。例えば、高脂血症なし・高血圧なしという条件を揃えた場合の、喫煙ありのオッズ比が
 \displaystyle
\log \left( \frac{\pi_S}{1-\pi_S} \right) - \log \left( \frac{\pi_{NS}}{1-\pi_{NS}} \right) = \beta_2 \\
\Leftrightarrow \frac{\pi_S / (1-\pi_S)}{\pi_{NS} / (1-\pi_{NS})} = e^{\beta_2}
によって計算される(喫煙ありの場合の発症確率を \pi_S、喫煙なしの場合の発症確率を \pi_{NS}とした)。
以前書いたように、発生する確率の低い疾患に関してはオッズ比はリスクとして解釈可能である。
mstour.hatenablog.com
この例では、例えば \beta_2を指数変換した値は2.198とされているので、喫煙している場合には、虚血性心疾患の発症リスクが2倍以上になると推定される。
統計学の文脈を見る限りでは、ロジスティック回帰は、説明変数が結果に与える影響力の大きさを推測するために用いると説明されていることが多いように思う。

機械学習の中でのロジスティック回帰

機械学習では、基本的にロジスティック回帰はデータの分類のために用いられているようである。例えばcourseraの機械学習コースのページ(Classification - Logistic Regression | Coursera)には「ロジスティック回帰はデータを2値に分類する方法である」のように紹介されている。ビショップ(2012)[2]でも、Fisherの判別関数やパーセプトロンといった分類手法と同様にして解説されており、「回帰よりむしろ分類のためのモデルである」と述べられている。
ここで関心を持たれるのは最尤法によって推定されたパラメータ(と、そこから計算されるオッズ比)ではなく、データを2値に分類するための規則である。
データにフィットするようにモデルのパラメータを推定すると、数式(1)より、説明変数 x_{i1}, \dots, x_{ip}のどのような組み合わせについてもそれに対応する結果変数の確率を計算することができる。モデル化した確率 \pi_iが個体 iの結果変数がAになる確率であるとすると、

 \displaystyle
\pi_i \geq 0.5 \Rightarrow Aに分類する \\
\pi_i < 0.5 \Rightarrow Bに分類する

という分類規則を作ることができる。なお式(1)を変形すると

 \displaystyle
\pi_i = \frac{1}{1 + \exp \left\{ -(\alpha + \beta_1 x_{i1} + \dots + \beta_p x_{ip}) \right\} }
と書けるので、分類規則は
 \displaystyle
\alpha + \beta_1 x_{i1} + \dots + \beta_p x_{ip} \geq 0 \Rightarrow Aに分類する \\
\alpha + \beta_1 x_{i1} + \dots + \beta_p x_{ip} < 0 \Rightarrow Bに分類する
とも表せる。つまり、ロジスティック回帰によってデータを分類する場合、データを分ける境界(「決定境界」という)は直線になる。
こちらの記事がとても参考になる。一番最後の注釈3には笑ってしまった。
ill-identified.hatenablog.com

このように直線でデータを分類する境界を引いてしまうので、残念ながら画像を分類するような実用にはあまり役に立たなさそうに見える。将来のデータがAとBのどちらに分類されるかを確率的に予測するという目的に特化すれば、ロジスティック回帰のような解釈のしやすいモデルにこだわる必要はなく、もっと複雑だけど予測性能の高いモデルのほうが良いということになるだろう。
一方で、先に述べたように喫煙が虚血性心疾患のリスクを何倍にするかということに関心があるような場合には、喫煙と虚血性心疾患との関係性が解釈可能な形でリンクしていなければならず、多層のニューラルネットワークなんかは使えそうにない。

まとめ

ロジスティック回帰は統計学機械学習のいずれにおいても基本的手法として紹介されるが、若干立ち位置が異なっているように見える。今回は統計学の文脈・機械学習の文脈でどのように述べられているかを対比してみた。両者の一番の違いは、統計学的な文脈では「人間がモデルから得られた結果を解釈してあれこれ議論する」一方で、機械学習の文脈では「機械的に今後のデータを予測したり分類したりしていく」という点だと思う。
f:id:mstour:20200924201951j:plain


参考文献

[1] John M. Lachin(2020), "医薬データのための統計解析", 共立出版.
[2] C.M.ビショップ(2012), "パターン認識機械学習", 丸善出版.