統計学と機械学習に共通する方法:(1)ロジスティック回帰
はじめに
統計学と機械学習、どちらも現代のデータ分析方法としてなくてはならないものだ。そこには共通して使われている手法もたくさんある。一方で、微妙な定義の違い、考え方の違いもあるように感じる。
今回は「ロジスティック回帰」を統計学と機械学習それぞれの文脈から見てみたいと思う。
ロジスティック回帰の数学的定義
いま、AとBという2つの状態をとる結果変数(例えば、疾患の発症あり・なし)に関心があるものとする。結果変数がAになる(Bになる、でもよい)確率に影響を与えるような変数(以下では「説明変数」とする)が考えられる時、両者の関係をモデル化する方法の1つに「ロジスティック回帰」がある。
番目の解析単位(例えば、人とか、画像とか)の結果変数がAになる確率を、説明変数をとする。ロジスティック回帰は、以下の式で関係性を表現する:
このようなモデル化によって、個々の説明変数が結果変数に与える影響の大きさを評価することもできるし、逆にある説明変数の組み合わせをもつ場合に結果変数がAになるかBになるかの予測も可能となる。
統計学の中でのロジスティック回帰
いろいろな分野で使われていると思うが、医学分野では、ある疾患発生のリスクを推定するための疫学研究で用いられることが多い。Lachin(2020)[1]には、虚血性心疾患のリスク因子についてロジスティック回帰で評価する例がある。リスク因子(説明変数)として挙げられているのは高脂血症の有無、喫煙の有無、高血圧の有無である。虚血性心疾患の発症確率を、高脂血症の有無を、喫煙の有無を、高血圧の有無をとすると、ロジスティック回帰モデルは
である。ただし、はそれぞれ有の場合1、無の場合0をとるものとする。パラメータの推定された値から、虚血性心疾患に関する各リスク因子のオッズ比を推定することができる。ただしこの推定値は、「他のリスク因子を調整したときの」オッズ比である。例えば、高脂血症なし・高血圧なしという条件を揃えた場合の、喫煙ありのオッズ比がによって計算される(喫煙ありの場合の発症確率を、喫煙なしの場合の発症確率をとした)。
以前書いたように、発生する確率の低い疾患に関してはオッズ比はリスクとして解釈可能である。
mstour.hatenablog.com
この例では、例えばを指数変換した値は2.198とされているので、喫煙している場合には、虚血性心疾患の発症リスクが2倍以上になると推定される。
統計学の文脈を見る限りでは、ロジスティック回帰は、説明変数が結果に与える影響力の大きさを推測するために用いると説明されていることが多いように思う。
機械学習の中でのロジスティック回帰
機械学習では、基本的にロジスティック回帰はデータの分類のために用いられているようである。例えばcourseraの機械学習コースのページ(Classification - Logistic Regression | Coursera)には「ロジスティック回帰はデータを2値に分類する方法である」のように紹介されている。ビショップ(2012)[2]でも、Fisherの判別関数やパーセプトロンといった分類手法と同様にして解説されており、「回帰よりむしろ分類のためのモデルである」と述べられている。
ここで関心を持たれるのは最尤法によって推定されたパラメータ(と、そこから計算されるオッズ比)ではなく、データを2値に分類するための規則である。
データにフィットするようにモデルのパラメータを推定すると、数式(1)より、説明変数のどのような組み合わせについてもそれに対応する結果変数の確率を計算することができる。モデル化した確率が個体の結果変数がAになる確率であるとすると、
という分類規則を作ることができる。なお式(1)を変形すると
と書けるので、分類規則はとも表せる。つまり、ロジスティック回帰によってデータを分類する場合、データを分ける境界(「決定境界」という)は直線になる。こちらの記事がとても参考になる。一番最後の注釈3には笑ってしまった。
ill-identified.hatenablog.com
このように直線でデータを分類する境界を引いてしまうので、残念ながら画像を分類するような実用にはあまり役に立たなさそうに見える。将来のデータがAとBのどちらに分類されるかを確率的に予測するという目的に特化すれば、ロジスティック回帰のような解釈のしやすいモデルにこだわる必要はなく、もっと複雑だけど予測性能の高いモデルのほうが良いということになるだろう。
一方で、先に述べたように喫煙が虚血性心疾患のリスクを何倍にするかということに関心があるような場合には、喫煙と虚血性心疾患との関係性が解釈可能な形でリンクしていなければならず、多層のニューラルネットワークなんかは使えそうにない。