ロジスティック回帰分析の重回帰分析との違いを分かりやすく、エクセルでの計算の仕方の実演
ロジスティック回帰分析と重回帰分析との違いを分かり易く説明し、エクセルでロジスティック回帰分析のエクセルのソルバー機能を使った方法を実演をします。これで今日からロジスティック回帰分析ができる様になります。
(動画時間:7:59)
重回帰分析とロジスティック回帰分析の根本的な違い
こんにちは、リーンシグマ、ブラックベルトのマイク根上です。
業務改善コンサルをしています。今日はこのご質問からです。
「目的変数が2値の場合、
ロジスティック回帰分析をするべきなのはわかっていますが、
それをエクセルでする場合はダミー変数を用いて、
例えば0と1にするだけの重回帰分析はできないのでしょうか?」
シャルさん、ご質問ありがとうございました。
この記事を読む事で、
重回帰分析とロジスティック回帰分析の違いを理解し、
ご自分でエクセルだけでロジスティック回帰分析ができる様になります。
まず、重回帰分析は
目的変数Yを計算する複数の説明変数を持った回帰式を求める事です。
過去の動画で詳しくやりましたので次のリンクからそちらもご覧下さい。
⇒「重回帰分析をSEOの例題で理解する。【回帰分析シリーズ3】」
ご質問では目的変数が2値と言っていますが、
これはどういう事でしょうか?
合格する/しない、や、存在する/しない、など
目的変数のデータが2値であり、
それを0と1として回帰分析をする事です。
厳密に言うとこれは二項ロジスティック回帰分析です。
この回帰分析で、マーケティングや生産管理などで、
過去のデータから回帰式を求めて、
新しいデータを説明変数に当てはめる事で、
その結果は0から1の間で、
それが起こる確率を求める事ができます。
ご質問の中で、
「目的変数になるデータをダミー変数にして、
普通に重回帰分析をすればいいのですか?」
と聞かれてます。
重回帰分析で出した回帰式ではその結果の範囲は
マイナスの時もあれば1以上の時もあります。
しかし、今回の場合は
結果が0と1の間になるような回帰式が欲しいので、重回帰分析は使えません。
そこでそのための手法のロジスティック回帰分析があるのです。
まとめると、この二つの手法をどう使い分けるかと言うと、
それは求めたい結果と使うデータによります。
もし、目的変数として、合格する/しないなどの
2値の結果を予測する回帰式を求めたい時は
ロジスティック回帰分析を、
それ以外では重回帰分析をする事になるのです。
エクセルのソルバー機能でロジスティック回帰分析ができる。
それでは次にそのロジスティック回帰分析のやり方の話に移りましょう。
ロジスティック回帰分析はほとんどの統計ソフトに入っていますが、
残念ながらエクセルには標準では入っていません。
しかし、エクセルのソルバー機能を使う事でできます。
ソルバー機能についての動画もあるので次のリンクからご覧下さい。
⇒「【エクセルのソルバーの使い方】最適解を瞬時に求める、無名の超便利機能」
後でソルバー機能を使う実演もしますが、
簡単に言うと、内臓されている「ソルバーアドイン」を有効にするだけで、
誰でも使える様になります。
メニューバー「ファイル」→「オプション」→「アドイン」→(Excel アドイン)「設定」
ロジスティック回帰分析をするデータの準備をする。
今回の分析をするシナリオ
ソルバー機能の準備ができたので、
実際にロジスティック回帰分析の実演をやってみましょう。
上図が今回の例題と使うサンプルデータで、
それは米国プロバスケットボールリーグのNBAを目指す12人の選手の
一試合平均得点数、リバウンド数、アシスト数のデータがD、E、F列に、
彼らが実際にNBAのドラフトに選抜されたかどうかの結果がC列にあります。
選抜の結果を目的変数とし、
それ以外を説明変数として回帰分析をして、
新しい選手の説明変数のデータから
彼らのドラフトに選抜される確率を求められる様にする事が今回のテーマです。
目的変数の結果は選抜されたら1、されなかったら0となり、
0から1の間になる様にしたいので、重回帰分析は使えず、
ロジスティック回帰分析をする事になるのです。
ロジスティック回帰分析の回帰式
これが説明変数が3つの時のロジスティック回帰分析の回帰式です。
突然難しく思えますが、分母内の「b0+b1∗x1+b2∗x2+b3∗x3」の部分は重回帰式と同じです。
上図のG列に、まずその部分を計算する数式を入れています。
セルG8内
=$D$23+$D$24*D8+$D$25*E8+$D$26*F8
データの下に定数と各説明変数の係数のb0、b1、b2、b3のセルを作ってあり
(セルD23、D24、D25、D26)、
数式はそれらを参照していて、
そのセル範囲は後でソルバーを実行する時に使います。
この回帰式を大文字のXとしたら、ロジスティック回帰式は次の様になり、
この式を求めるエクセルの数式をH列に入れています。
セルH8内
=1/(1+EXP(-G8))
なぜこの様な数式になるかを理解する必要はありませんが、
これ全体がどういう事をしているのかを理解する必要はあります。
上図の様に最終的にH列のロジスティック回帰式の各結果が
C列の実際の選抜の各結果に限りなく同じになるような
下の4つの係数(セルD23からD26)を求めたいのです。
それを実現するのに対数尤度(ゆうど)を使います。
ロジスティック回帰分析には「対数尤度」を使う。
「尤度」は漢字が難しいですが、これで「ゆうど」と読み、
次の数式で求められるのです。
対数尤度
=結果∗𝐿𝑁(確率)+(1−結果)∗𝐿𝑁(1−確率)
セルI8内
=C8*LN(H8)+(1-C8)*LN(1-H8)
これはC列の結果とH列の確率から自然対数LN関数を使って
「尤もらしい」尤度を求めているのです。その式をI列に入れます(下図参照)。
そしてI列の一番下にSUM関数でこの全対数尤度の合計を求めています(セルI22)。
これでソルバーを使うデータの準備ができたのです。
ソルバーの使い方とロジスティック回帰分析の結果の解釈と使い方
ソルバーアドインが有効化されていれば、
メニューバーの「データ」から、「ソルバー」を起動できます。
その画面が次の図です。
その中の各設定で次の様にセルの選択をします。
- 「目的セルの設定」= 対数尤度の合計のセル(セルI22)
- 「目標値」=「最大値」
- 「変数セルの変更」= さっきの4つの係数のセル範囲(セルD23からD26)
これで対数尤度の合計が最大になるような
4つの係数の組合せを見つける事ができるのです。(セルD23からD26)
これで「解決」をクリックすると、
「ソルバーによって解が見つかりました。」と出てくれば成功です。
ソルバーの結果で出てきた4つの係数(セルD23からD26)を
最初のロジスティック回帰式に入れたのが下図内の「P(x)」の式になります。
これを実務でどう使うかと言うと、
新たな選手の説明変数を入れるセルを作り(上図内セルF29からH29)、
それらに対応した今回の回帰式の数式を入れます(上図内セルI29とJ29)。
そして新たな選手の成績をセルF29からH29に入れたら、
その選手のNBAに選抜される確率がセルJ29に出る様になるのです。
以上が二項ロジスティック回帰分析のエクセルでのやり方でした。
これは他の統計ソフトでは簡単に答えが出てきますが、
エクセルでやってみるとより深くロジスティック回帰分析の内容が理解できますね。
今回の手法とご自分の過去の業務データから回帰式を出して、
将来の結果を予想する事によって、
より正確な判断ができる様になりますので、
ぜひ活用してみて下さい。