ロジスティック回帰分析を解説!オッズ比やエクセルのやり方
目次[非表示]
はじめに
ロジスティック回帰分析について、基本知識や、関連する専門用語の意味、Excelでのやり方を、事例とともにわかりやすく解説していきます。
この記事を読んで分かること、できるようになること
●ロジスティック回帰分析の基礎を正しく知ることができる。
●ロジスティック回帰分析の用途を理解し、エクセルでの実施方法を習得できる。
●ロジスティック回帰分析のマニュアル(資料)を無料でダウンロードできる。
ロジスティック回帰分析とは
ロジスティック回帰分析とは、複数の要因(説明変数)によって、「ある」「ない」といった2つの値の結果(目的変数)を予測する統計手法のことです。2つの値の結果をわかりやすく言うと、例えば「合格・不合格」や「採用・不採用」などです。
ロジスティック回帰分析と重回帰分析の違い
ロジスティック回帰分析とよく似た統計手法で重回帰分析があります。
重回帰分析では目的変数が量的データ(数値)であるのに対し、ロジスティック回帰分析の目的変数は「ある」「ない」、「該当する」「該当しない」のような質的データであるという違いがあります。
ロジスティック回帰分析のモデル式
ここからは事例で説明していきます。
9人の被験者を、不健康と健康の2値(目的変数)で分類し、喫煙本数と飲酒日数(説明変数)との関係を数式化しました。この数式がモデル式です。
左側の「喫煙・飲酒と不健康」の表の最初の被験者は、「喫煙本数(1日)が30本、飲酒日数(1ヶ月)が21日」で、不健康に分類されています。
右側のロジスティック回帰分析のモデルにある「偏回帰係数」は、ロジスティック回帰分析によって算出された数値になります(偏回帰係数の算出方法は、後ほど詳しく解説します)。
喫煙本数と飲酒日数の偏回帰係数を代入した以下の数式が、ロジスティック回帰分析のモデル式です。
分母の「e」はネイピア数(自然対数の底)といい、その値は「2.718」です。
では、喫煙本数が25本(1日)、飲酒日数が15日(1ヶ月)の人は、不健康と健康のどちらに分類されると予測できるでしょうか。モデル式を使って予測値を算出しましょう。
この人が不健康に分類される確率は94%ということになります。
オッズとオッズ比
ロジスティック回帰分析は、モデル式によって説明変数から目的変数を予測するだけではなく、説明変数が目的変数にどの程度影響を与えているのかも、明らかにします。その指標が、オッズとオッズ比です。
例えば、ある疾病が発病する確率(p)を、発病しない確率(1-p)で割った数値がオッズです。
もし、発病する確率が20%であった場合、オッズは『0.2÷(1-0.2)』なので、0.25となります。
このオッズは、薬を飲んでいるグループのオッズです。
次に、この薬を飲んでいるグループのオッズと、薬を飲んでいないグループのオッズを比較します。
薬を飲んでいないグループの発病する確率が40%だったとすると、オッズは『0.4÷(1-0.4)』なので、0.67となります。
これらのオッズを、オッズ比を求める計算式に当てはめてみます。
オッズ比は0.373となりました。
オッズ比は「1」に近いほど、二つのグループでの発病のしやすさが同程度ということになります。
算出されたオッズ比の0.373は、「1」に近いとは言えず、薬を飲むか飲まないかによって、発病する確率は大きく左右されるということになります。
Excelを使ったロジスティック回帰分析のやり方
Excelを使ってロジスティック回帰分析を行う手順を説明します。
回帰分析や分散分析は、Excelの分析ツールがあれば実行できますが、残念ながら分析ツールにはロジスティック回帰分析の機能はありません。
その代わりに、ソルバー(Solver)をアドインすることで、ロジスティック回帰分析を行うことができます。
まずはじめに、ソルバーによる計算をする準備段階として、Excelファイルのデータを整形します。
次に、分析ツールの有効化と同じ手順で、ソルバーをアドインします。
さらに「偏回帰係数の初期値を設定」し、Excel関数を使って「推定値と対数尤度(ゆうど)を算出」した後、ソルバーを実行し、偏回帰係数と推定値を算出します。
最後にオッズ比を算出します。
1.データの整形
例として先述の「喫煙・飲酒と不健康」のデータを使い、ロジスティック回帰分析を実施していきます。
左側の表のA列とB列の間に列を挿入します。挿入後のB列3行に「定数項」と入力し、B列4行から12行まで「1」を入力します。
2.ソルバーのアドイン
データを整形したら、ソルバーをアドインします。Excelの分析ツールと同様、Excelの画面で簡単にアドインすることができます。
3.偏回帰係数の初期値の設定
ソルバーのアドインが完了したら、ExcelシートのA列1行に「偏回帰係数」と入力し、B列1行、C列1行、D列1行の3つのセルに「0」を入力します。
この「0」が、「定数項」と説明変数の「喫煙本数・飲酒日数」の偏回帰係数の初期値となります。
4.推定値の計算
ExcelシートのE列3行に「推定値」と入力し、E列4行に以下の関数を入力します。
=1/(1+EXP(-SUMPRODUCT($B$1:$D$1,B4:D4))) |
※「EXP関数」:指数関数を計算する関数です。
※「SUMPRODUCT関数」:引数の配列の積和を計算する関数です。
結果、「推定値」は「0.5」となりました。
E列4行の「0.5」をコピーし、E列12行までペーストします(E列4行のセル右下に表示されるポインタをダブルクリックすれば、E列12行までオートフィルすることができます)。
5.対数尤度の計算
ExcelシートのF列3行に「データごとの対数尤度」と入力し、F列4行に以下の関数を入力します。
=A4*LN(E4)+(1-A4)*LN(1-E4) |
※「LN関数」:引数の自然対数を計算する関数です。
※「LN関数」を使ったこの数式は、観測データ1つごとの対数尤度を計算します。
データごとの対数尤度は、結果、「0.69315」となりました。
推定値と同じように、F列4行の 「0.69315」をコピーし、 F列12行までペーストします(F列4行のセル右下に表示されるポインタをダブルクリックすれば、F列12行までオートフィルすることができます)。
ExcelシートのG列1行に「対数尤度」と入力し、H列1行に以下の関数を入力します。
=-2*SUM(F4:F12) |
※「SUM関数」:配列の和を計算する関数です。
モデル全体の対数尤度の総和をマイナス2倍して計算した対数尤度は「12.47665」となりました。
6.偏回帰係数と推定値の算出(ソルバーの実行)
Excelシートの「データ」タブを開きます。
H列1行(対数尤度の「12.47665」)にカーソルを置いて、「ソルバー」をクリックします。
するとソルバーのパラメータのウインドウが表示されます。
ソルバーを実行した結果のウインドウが表示されます。
「ソルバーによって現在の解に収束されました。すべての制約条件を満たしています。」とのメッセージも表示されました。
その下の「ソルバーで反復計算を5回実行しましたが、目的セルが優位に移動しませんでした。収束の設定値を小さくするか、開始点を変更してください。」というメッセージは無視して構いません。
B列1行「-8.996」は『切片』、C列1行「0.3079」は『喫煙本数』、D列1行「0.2669」は『飲酒日数』の、それぞれ偏回帰係数です。
「推定値」とは、目的変数である「不健康か健康か」が「1」(不健康)になる確率のことです。推定値の値が相対的に高ければ「1」=不健康、低ければ「0」=健康となる傾向が読み取れます。
7.オッズ比
オッズ比は、ExcelのEXP関数で、簡単に算出することができます。
C列3行とC列4行に以下のEXP関数を入力しましょう。
=EXP(0.3079)
=EXP(0.2669)
|
カッコ内の数値は「喫煙本数」と「飲酒日数」の偏回帰係数「0.3097」と「0.2669」です。
これは、「喫煙本数」の値が「1(本)」増加すると、不健康に分類される確率が1.3606倍になり、「飲酒日数」の値が「1(日)」増加すると、不健康に分類される確率が1.3058倍になる、ということです。
ロジスティック回帰分析にまつわる、よくある質問
Q:「ロジスティック回帰分析」と「判別分析」の違いを教えてください。
どちらも「不健康と健康」のような、2つの群を判別する統計手法という点では同じです。
しかし判別分析は、2群を判別することが主目的で、説明変数の目的変数への影響度はあまり重視されません。ロジスティック回帰分析におけるオッズ比(説明変数の目的変数への影響度の指標)にあたる指標もありません。
また、分析に利用する変数は、正規分布に従う必要があります。
Q:オッズ比が「1.0」を下回ることはありますか。
はい、あります。例えば今回の事例の『喫煙・飲酒と不健康』の説明変数に、『ジョギング日数(1ヶ月)』を加えたと仮定します。
ジョギングは不健康よりも、健康に寄与する傾向の強い説明変数なので、オッズ比が「1」を下回ることは容易に想定できます。
もし、不健康になるオッズ比が「0.8」だった場合、逆数を計算し(1÷0.8=1.25)、つまりジョギングの『不健康』にならないオッズ比は「1.25」、よって『健康』になるオッズ比は「1.25」ということにもなります。
Q:有料のExcel統計を使うと、もっと簡単にロジスティック回帰分析をおこなうことができますか。
はい、できます。先述のExcel手順のような、いくつもの複雑な関数を使う必要が一切なくなります。SPSSのように、簡単な手順でロジスティック回帰分析を行うことができます。但し、Mac OSには対応していません。
※Excel統計は有料ですが、無料体験版もあります。
無料ダウンロード『ロジスティック回帰分析マニュアル』
本記事で解説した内容をまとめた資料「ロジスティック回帰分析マニュアル」は、下記よりダウンロードすることができます(無料)。
おわりに(まとめ)
最後に、ここまで解説してきた内容をまとめました。今一度の確認に活用してください。 |
ロジスティック回帰分析とは、複数の要因(説明変数)によって、「ある」「ない」といった2つの値の結果(目的変数)を予測する統計手法です。
その結果は、モデル式で表しますが、モデル式に代入する偏回帰係数の数値を算出することが、ロジスティック回帰分析です。
ロジスティック回帰分析と重回帰分析との相違点は、重回帰分析の目的変数は量的データ(数値)であるのに対し、ロジスティック回帰の目的変数は「ある」「ない」といった質的データということです。
一方、判別分析も2群を判別することを目的としていますが、説明変数の目的変数への影響度はあまり重視されないこと、分析に利用する変数は正規分布に従う必要があるという2点が、ロジスティック回帰分析との相違点です。
オッズ比とは、説明変数の目的変数への影響度の数値のことです。
例えば、ある説明変数のオッズ比が「1.5」だった場合、説明変数の数値が「1」上昇するごとに、目的変数に分類される確率が1.5倍となります。
Excelでロジスティック回帰分析を行う場合は、はじめにデータの整形後、ソルバーをアドインします(順序は逆でもかまいません)。
偏回帰係数の初期値の設定、Excel関数を使った推定値と対数尤度算出の後、ソルバーを実行、偏回帰係数と最終的な推定値を算出します。
そして最後にExcelの関数を使いオッズ比を算出します。
【参考文献】
『例題とExcel演習で学ぶ多変量解析 生存時間解析・ロジスティック回帰分析・ 時系列分析編』(菅民郎著、オーム社、2017年1月)