2018/12/29

2020/04/21

ロジスティック回帰分析の例や説明変数を解説!

回帰分析

ライター:

がんの発症確率や生存率などの”確率”について回帰分析を用いて考えたいときどのようにすればいいのでしょうか。

確率は0から1の範囲しか取れませんが、確率に対して重回帰分析を行うと予測結果が0から1の範囲を超えてしまうことがあります。確かに-0.2,1.3といった確率が何を意味するのか理解するのは困難ですね。

こんな時に用いられるのがロジスティック回帰分析です。

ロジスティック回帰分析を用いれば必ず予想結果が0から1の範囲に収まるので、確率を予測、分析したいときなどに用いられます。

例えば商品の購入確率やタイタニックのある乗客の生存確率などを予測したいときに用いることができます。

今回はこのロジスティック回帰分析について考えていきましょう。

非線形回帰分析とは

ロジスティック回帰分析について触れる前に線形回帰分析と非線形回帰分析について説明します。

以前の記事にあった単回帰分析重回帰分析は線形回帰分析に分類されます。目的変数と説明変数の間に線形な関係を仮定した分析手法であるため、線形回帰分析と呼ばれています。XとYが線形の関係にあるというのは、Xが変化すればYも変化するが、Xの変化に合わせてYが変化する割合が常に一定である状態を指します。つまり、XとYの関係はグラフにすると直線になります。直線であれば、変化の割合は常に一定になりますよね。一方非線形の関係というのは、直線ではない関係、例えば2乗やルートの関係です。

確かに、単回帰分析ではプロットしたデータに対して回帰直線を引くことができましたね。

一般には、以下の式で表すことができるとき目的変数と説明変数の間に線形関係があるといえます。

\(  y = a_1x_1 + a_2x_2 + \cdots + a_nx_n + b \)

 

一方で目的変数と説明変数の間に非線形な関係を仮定する、非線形回帰分析というものがあります。

線形重回帰分析以外のほとんどの回帰分析手法は非線形回帰分析に含まれます。今回説明する「ロジスティック回帰分析」以外にも「多項式回帰分析」「サポートベクトル回帰分析」など様々な非線形回帰手法があります。

今回はそんな非線形回帰分析の一種であるロジスティック回帰分析について見ていきましょう。

 

ロジスティック回帰分析とは

 

ロジスティック回帰分析では以下の式を想定します。

\(  p = \frac{ 1 }{ 1 + \exp ( -(a_1x_1   +   a_2x_2   +   \cdots   +   a_nx_n   +   b) ) } \) … ①

 

今回考える目的変数\(  y  \)は、確率であるため\(  p  \)とおきました。

この式を見ると、\(  x_i  \)がどんな値をとっても目的変数\(  p  \)が0から1までの範囲に収まるとわかりますね。

この\(a_i\)は\(x_i\)に対する偏回帰係数と言います。では、どのようにしてロジスティック回帰分析の偏回帰係数を求めるのでしょうか。

この偏回帰係数を求める手法は2種類あります。一つは最小二乗法、二つ目は最尤法を用いる方法です。

今回は、重回帰分析でも用いた最小二乗法を使って偏回帰係数\(a_i\)を求めていきます。

①の式を変形していき、以下の式②を示します。式②の形であれば、最小二乗法を用いることができますね。

\(  p = \frac{ 1 }{ 1 + \exp ( -(a_1x_1   +   a_2x_2   +   \cdots   +   a_nx_n   +   b) ) } \)

\(  1-p = \frac{ \exp ( -(a_1x_1   +   a_2x_2   +   \cdots   +   a_nx_n   +   b) ) }{ 1 + \exp ( -(a_1x_1   +   a_2x_2   +   \cdots   +   a_nx_n   +   b) ) } \)

\(  \frac{ p }{ 1-p } = \exp(a_1x_1   +   a_2x_2   +   \cdots   +   a_nx_n   +   b) \)

ここで対数を取ると

\(  ln\frac{ p }{ 1 – p }  = a_1x_1   +   a_2x_2   +   \cdots   +   a_nx_n   +   b =  l \) … ②

上記の式であれば、確かに重回帰分析と同じように最小二乗法を用いて偏回帰係数\(a_i\)を求めることができます。

\(  ln\frac{ p }{ 1 – p } = y’ \)とすれば、最小二乗法が使える形になっていると確認できます。

式②の\( l \)のことをロジットと呼びます。このロジットに対して指数を取るとオッズが出てきます。

\( \exp(l) = \frac{ p }{ 1 – p } \)

このオッズは、ある事象が発生する確率と発生しない確率の比になっていますね。

具体的な利用方法

ロジスティック回帰分析はどのような時に用いるのでしょうか。

先ほど述べたように、確率やダミー変数について分析、予想したいときに用いられます。

例えば、がんの発症率について分析したいときやこのメールが迷惑メールかどうかを予想したいときなどに用いられます。

このように0か1であるダミー変数を予想、分析するような問題を二値判別問題といいます。

二値判別問題を行うための手法はロジスティック回帰分析以外にも決定木やランダムフォレスト、サポートベクトルマシンなどがあります。

そんな様々な手法のなかでもロジスティック回帰分析は結果が理解しやすいという特徴があります。

そのため、これからはロジスティック回帰分析結果の解釈の仕方について説明していきたいと思います。

今回はどの説明変数が目的変数に影響を及ぼしているか比較する方法について考えていきます。

説明変数の解釈について ~影響度の比較~

目的変数に対して説明変数がどれだけ影響を与えているか比較するためにどうすればいいか説明します。

以下の例を参考に考えていきましょう。

今回は健康であるかどうかの確率について、血圧、性別、年齢などn個の要因を基に考えていきます。

まず、健康率に対する血圧の影響を考えていきましょう。

血圧が150の人をオッズA、180の人をオッズBとします。他の条件に関してすべて同じであるとします。

この時、オッズ比はオッズA÷オッズBで表されます。

このとき、オッズ比は以下のようにも表されます。

\( オッズA / オッズB = \frac{ exp( a_{bp}150 +a_{sex}x_{sex}   +   \cdots   +   a_nx_n   +  b) }{ exp( a_{bp}180 + a_{sex}x_{sex}   +   \cdots   +   a_nx_n  + b) } = {exp(-30{a_{bp}})} \)

と表されます。\( bp \)は血圧、Blood pressureを表しています。

このオッズ比、\( オッズA / オッズB \)が1より大きければ、血圧が150の人は血圧が180に人に比べ健康率が高いと分かります。

この時、新たにオッズ男、オッズ女について考えてみると、

\( オッズ男 / オッズ女 = \frac{ exp (a_{bp}x_{bp} +a_{sex}*1   +   \cdots   +   a_nx_n   +  b) }{ exp( a_{bp}x_{bp} + a_{sex}*0   +   \cdots   +   a_nx_n  + b) } = exp(a_{sex}) \)

上記では、男が1、女が0のダミー変数としました。

この時\( \exp(a_{bp})^20 \)と\(exp(a_{sex}) \)が求まれば、血圧と性別の影響の大きさを比較することができます。

この二つの偏回帰係数は、以下の式の\( a_{bp},a_{sex} \)について考えることで求められます。

\(  ln\frac{ p }{ 1 – p }  = a_{bp}x_{bp}   +   a_{sex}x_{sex}   +   \cdots   +   a_nx_n   +   b = l \)

これに対して最小二乗法を用いれば、偏回帰係数\( a_{bp},a_{sex} \)が求まります。

この時\(exp(-30{a_{bp}}) \)と\(exp(a_{sex}) \)を比較し、例えば\(exp(a_{sex}) \)の方が大きかったとしましょう。その場合、性別の方が血圧よりも健康率に影響を及ぼすと説明できます。

このようにすることで、目的変数に対する説明変数の影響の大きさを比較することができるようになりました。

 

説明変数の選択に関して

ロジスティック回帰分析も重回帰分析と同様に説明変数の選択を行います。

重回帰分析でも用いたステップワイズ法を用いて説明変数の取捨選択をすることができます。

そのために扱いたい確率\( p \)に対して\(  ln\frac{ p }{ 1 – p } \) を目的変数にした重回帰モデルを考えましょう。

そうすることでステップワイズ法を用いることができるようになります。

ロジスティック回帰分析の実践

Rを用いたロジスティック回帰分析についてのリンクを添付しました。

上記のリンク先を参考にすればRを用いてロジスティック回帰分析ができます。

 

(totalcount 160,304 回, dailycount 172回 , overallcount 15,133,553 回)

ライター:

回帰分析

single-banner

COMMENT

コメントを残す

メールアドレスが公開されることはありません。
*は必須項目です。




CAPTCHA