ロジスティック回帰分析で何ができる?具体的な活用事例4つと分析の5ステップを徹底解説

分析

「ロジスティック回帰分析ってどうやってやるの?」
「ロジスティック回帰分析をしたはいいけど、どうやって活用するの?」
とお悩みではありませんか?

ロジスティック回帰分析は「商品が売れるか売れないか」などの2択の事象を分類して、分類の中で重要な変数を抽出する手法です。

2択の結果を予測できるだけでなく、影響を与えた重要な変数を見つけ出すこともできるので、サービスなどの改善点や重要視すべき点を客観的に判断できます。

本記事では、

  • ロジスティック回帰分析の基本的な仕組み
  • ロジスティック回帰分析の活用事例
  • ロジスティック回帰分析の手順
  • ロジスティック回帰分析の実装

についてお伝えしていきます。

この記事を読めば、ロジスティック回帰分析について理解できるだけでなく、「自社のデータを活用して精度の高い予測モデルを作り、売上アップやリスク回避に繋げる」ための具体的なイメージを持つことができるでしょう。

かっこのデータサイエンス公式

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

ロジスティック回帰分析は、物事の結果を2値に分類する統計的な分析手法です。

ロジスティック回帰分析を行うことで、「商品が売れるかどうか」や「サービスを継続してくれるかどうか」など、「はい」か「いいえ」で知りたい情報を予測できます。

ここでは、ロジスティック回帰分析の基本的な仕組みや他の分析手法との違いについて、詳しく解説していきます。

そもそも「2値に分類する」とは?

「2値に分類する」とは物事の結果を「はい」か「いいえ」の2つのパターンのどちらかに分けることです。

2値に分類するとはの改案

ロジスティック回帰分析は、「商品が売れるか売れないか」や「サービスを継続してもらえるかしてもらえないか」など、答えが「はい」か「いいえ」に分かれるさまざまな問題を予測できます。

例えば、「ある映画サービスを継続してもらえるかどうか」を分析するケースを見てみましょう。

ロジスティック回帰のデータ項目

この分析で知りたい情報は、ユーザが1か月以上サービスを継続するかどうかです。

先ほどの「はい」と「いいえ」に置き換えてみると、

  • はい:サービスを継続する
  • いいえ:サービスを継続しない

となります。

ロジスティック回帰分析は、「はい」か「いいえ」で答えられるように目的となる変数を決めることで課題を解決することができます。

売上など「はい」か「いいえ」になっていない変数でも、しきい値を定めることで、ロジスティック回帰分析を実行できます。

しきい値:数値や条件が変化する境界となる値。ロジスティック回帰分析では、「1万円以上なら『はい』」のように設定できる。

重回帰分析との違い

ロジスティック回帰分析と重回帰分析はよく似た分析手法ですが、予測する対象が「発生する確率や結果(質的データ)」か「数値そのもの(量的データ)」かという点で違いがあります。

比較項目 ロジスティック回帰分析 重回帰分析
予測する対象 事象が発生する確率や結果の分類(質的データ) 連続する数値そのもの
(量的データ)
知りたいこと(目的) 「どちらの結果になるか」の分類 「金額や量」などの具体的な数値
具体的な活用例 売上が目標を達成するかどうか 明日の売上がいくらになるか

ロジスティック回帰分析は「売上が目標を達成するかどうか」のように、事象が発生する確率や結果の分類を予測する分析手法です。

一方、重回帰分析では「明日の売上がいくらになるか」といった連続する数値そのものを予測します。

目的に合わせて、「どちらの結果になるか」を知りたいときはロジスティック回帰分析を使い、「金額や量」を知りたいときは重回帰分析を使うとよいでしょう。

ロジスティック回帰分析でできること2つ

ロジスティック回帰分析を活用することで、データから事象の理由を解明し未来の結果を見通すことが可能になります。

この章では、ロジスティック回帰分析でできる2つのことについて解説していきます。

  • ①事象の説明や解釈ができる
  • ②将来の予測ができる

今起きている事象を解釈するために用いるのか、さらに将来の予測まで行うのかの2つです。

それぞれの機能が具体的にどのような役目を持っているのか、順番に詳しく見ていきましょう。

①事象の説明や解釈ができる

ロジスティック回帰分析は、ある事象が起こっている理由や要因を客観的なデータに基づいてわかりやすく説明できます。

何かアクションを起こす際には、現状を正しく把握している必要があるため、そのような場合の事象の理解にロジスティック回帰分析が用いられるのです。

例えば、学生が大学に合格するのに何が必要かを把握したい場合、考えられる「各変数(テストスコア、勉強時間、部活動の参加など)」と「合格という結果」の間にどれくらい相関があるか調べることができます。

ロジスティック回帰分析の事象の説明や解釈を行うの説明画像

上図のように、それぞれの要因がどれだけ大切であるのかを客観的に理解するために、ロジスティック回帰分析が必要なのです。

また、以下で説明する「将来の予測」においても、まず現状の把握や解釈から始めるため、事象の説明や解釈はロジスティック回帰分析で欠かせないプロセスです。

②将来の予測ができる

ロジスティック回帰分析は、将来を予測するために広く利用されています。

特に、ロジスティック回帰分析は、2つのカテゴリ(合格/不合格、購入/非購入など)での、事象が発生する確率を予測するのに用いられます。

例えば、顧客がある商品を購入するかどうかを予測する際に、ロジスティック回帰分析が利用されます。

ロジスティック回帰分析の予測を行うの説明画像

上図のように、顧客の年齢、購買履歴、クリック履歴などの情報から、購入確率を予測し、マーケティング戦略を最適化できます。

このように、ロジスティック回帰分析を用いることで、事象の発生確率を予測し、効果的な戦略を立てられるのです。

以下では、事象の説明や解釈も含めたロジスティック回帰分析の活用事例について解説していきます。

【必見】ロジスティック回帰分析の活用事例4つ

ロジスティック回帰分析で予測できる4つの例のアイキャッチ画像

ビジネスにおいて、「はい」か「いいえ」の予測はあらゆる場面で強力な武器として機能します。

この章では、ロジスティック回帰分析の代表的な4つの活用事例を紹介します。

  • 【事例1】商品の購買予測
  • 【事例2】サブスクリプションサービスの継続予測
  • 【事例3】病気の予測
  • 【事例4】不正の検知予測

ロジスティック回帰分析が、どのような業界や業務で使われているのかを知ることで、自社での活用イメージが湧きやすくなるはずです。

それでは、以下で1つずつ詳しく解説していきます。

【事例1】商品の購買を予測する

ロジスティック回帰分析を用いることで、顧客の閲覧データや行動履歴を元に商品の購買予測を行うことができます。

ECサイトは毎日多くのユーザが購買行動を起こしているため、元となるデータの宝庫です。

「キャンペーンによってどれだけ購買が促進されたのか」という効果の測定や、「ある商品を買っている人は特定の商品を買っている」のような関連性の発見に役立ちます。

【事例2】サブスクリプションサービスの継続を予測する

ロジスティック回帰分析は、ユーザがサブスクリプションサービスを継続するかしないかの予測にも使うことができます。

サブスクリプションサービスは、「継続する(はい)」か「解約する(いいえ)」かの明確な2択に分かれる問題を設定できるため、ロジスティック回帰分析を使いやすいです。

例えば、「新しいキャンペーンをする際にどれだけのユーザの継続に効果があるのか」などの効果分析に役立ちます。

【事例3】病気の発症リスクを予測する

医療では、ロジスティック回帰分析を用いて、患者が将来的に特定の病気を発症するかどうかを予測できます。

医療の現場では、病気の発症の有無がさまざまな変数とともにデータとして蓄積されているので、血圧の数値や喫煙の有無といった複数の項目を計算式に当てはめることで、病気のリスクを客観的な数値として可視化できます。

医師は分析の結果に基づいて、より的確な予防のアドバイスを行ったり、早期発見に向けた検査を促したりと、患者の健康を守るための行動を起こすことができるのです。

【事例4】不正のリスクを予測する

ロジスティック回帰分析を用いて、クレジットカードの決済やECサイトでの注文において、その取引が不正であるかどうかのリスクを予測することができます。

不正をしているユーザは、その他の一般ユーザと別の行動をしている可能性が高いため、ロジスティック回帰分析で予測できるのです。

顧客の取引履歴やアクティビティのデータを用い、過去の不正データと照合することで、不正のリスクを可視化できます。

ロジスティック回帰分析を行う5つのステップ

ロジスティック回帰分析の手順のアイキャッチ画像

ロジスティック回帰分析は以下の5つのステップで行います。

  • 【ステップ1】分析するデータの準備・加工
  • 【ステップ2】データを分析するための環境の設定
  • 【ステップ3】ロジスティック回帰のモデルの作成
  • 【ステップ4】作成したモデルの予測精度を評価
  • 【ステップ5】分類を左右している変数(項目)の分析

ロジスティック回帰分析は計算が複雑なため、実行にはプログラミング言語などのツールが必要です

ここでは、プログラミング言語を動かすための環境設定の方法も含めて、分析の手順を簡単に解説していきます。

【ステップ1】分析するデータの準備・加工

データの準備・加工はロジスティック回帰分析にとって重要なステップです。

手元にあるほとんどのデータには、入力ミスや空欄などの不備が存在しているので、事前に分析しやすいように加工する必要があります。

以下のことを確認しながらデータの加工作業を行いましょう。

  • 異常な値のデータはないか
  • 抜けているデータはないか
  • 単位の異なる数値はないか
  • 文字で書かれているデータはないか

異常なデータや抜けているデータがあると、回帰分析を行っても精度の高いモデルにならない可能性があります。

また、単位の異なる数値があれば、値が大きい項目が重視されてしまいます。

例えば、身長と体重では身長の方が大きな値になるため、2つの項目の値の範囲を統一する作業が必要です。

「男性」や「女性」といった文字で入力されている項目は、そのままでは計算できないため、「0」や「1」などの数値に変換しましょう。

【ステップ2】データを分析するための環境の設定

次にデータを分析するための環境を設定します。

ロジスティック回帰分析は数式が複雑なので、コンピュータなどの機械で計算する必要があります。

今回は機械に指示をするための言語(プログラミング言語)を用いて、ロジスティック回帰分析を行います。

ロジスティック回帰分析を行うための代表的なプログラミング言語は以下の3つです。

  • エクセル
  • Python
  • R

6章『PythonやRを使えばロジスティック回帰分析が簡単になる』では、プログラミング言語を用いた分析のための、簡単なサンプルコードをご紹介しています。

【ステップ3】ロジスティック回帰のモデル(分類するためのルール)の作成

実行するための環境が整ったら、分析を行っていきます。

まず、データを「モデルを作るためのデータ(訓練データ)」と「モデルを評価するためのデータ(テストデータ)」に分割しましょう。

テストデータを訓練データと異なるものにすることで、モデル作成に使ったデータでなくても適切な予測ができるかを判断できます。

訓練データ」と「分析を実行するための条件」を、プログラミング言語に用意されている関数(計算式)に入力すると、内部で「ロジット変換」が実行され、分析のモデルが完成します。

ロジット変換:分析では扱いづらい確率(0〜1)を、計算しやすい数値(マイナス無限大〜プラス無限大)に翻訳する操作

数万行のデータであっても簡単にモデルを作成できるため、プログラミング言語で分析することをおすすめします。

【ステップ4】作成したモデルの予測精度を評価

事前に分割していたテストデータを用いて、作成したモデルの予測精度を評価します。

作成したモデルが、たまたま訓練データにだけ適合しており、他のデータの分析では使い物にならない可能性があるため、テストデータを用いた評価は必須です。

ロジスティック回帰分析では分類の評価指標を用いて評価を行いましょう。

分類の評価指標には、正解率や適合率、再現率、F値などがあります。

【ステップ5】分類を左右している変数(項目)の分析

モデルの評価を終えて予測精度が高いと判断できれば、分類で用いられた項目を分析していきます。

それぞれの項目がどのくらい分類に影響を与えているのかを知ることで、分析対象の強みや弱みを把握できます。

ロジスティック回帰の式から重要な変数を探す

まず、ロジスティック回帰で用いた式を分析していきます。

ロジスティック回帰は以下の式です。

\[ y = ax_1 + bx_2 + \cdots \]

それぞれ以下のように解釈してください。

  • \(y\):「はい」か「いいえ」の結果のデータ
  • \(x_1,x_2\):それぞれの項目のデータ
  • \(a,b\):項目の影響度を表す値(回帰係数)

式の\(a,b\)のような係数(回帰係数)に着目して、項目がどれだけ影響を与えているのかを把握します。

回帰係数だけでも影響度を把握することはできますが、回帰係数を用いてオッズ比を求めることで、さらに高度な解釈が可能です。

重要な変数が結果にどれだけ影響を与えているのかをオッズ比から計算する

オッズとオッズ比の改案

オッズ比を求めることで、あるアクションを起こしたことが最終的な結果にどれだけ結びついているのかを示せます。

1章の『そもそも「2値に分類する」とは?』で紹介した、映画サービスの継続の例をもとに見ていきましょう。

オッズ:起こる確率 / 起こらない確率

オッズは、ある事象が起こる確率をそれが起こらない確率で割った数値で、オッズ比を求める過程で必要となります。

オッズを求める式は以下の通りです。

\[ オッズ = p \div (1-p) \]

例えば、あるカテゴリの映画を見る確率が60%のとき、オッズは以下のように計算できます。

\[ オッズ = 0.6 \div 0.4 = 1.5 \]

「あるカテゴリの映画を見る」という事象のオッズは1.5だと導くことができます。

オッズ比:オッズ1 / オッズ2

オッズ比は、ある条件を満たしたグループのオッズを、条件を満たしていないグループのオッズで割った数値です。

オッズ比を求めることで、ある変数が最終的な結果にどれだけ影響を与えているのかが分かります。

ここでは、「あるカテゴリの映画を見る/見ない」という変数が、サービスの継続にどれくらい影響を与えているかについて、解説していきます。

  サービスを継続する サービスを継続しない
あるカテゴリの映画を見る 80人 20人
あるカテゴリの映画を見ない 40人 60人

オッズ比は以下のような形で求まります。

オッズ比=
(映画視聴&サービス継続 ÷ 映画視聴&サービス不継続)÷
(映画不視聴&サービス継続 ÷ 映画不視聴&サービス不継続)

分子は「映画を視聴した人がサービスを継続したかどうか」のオッズで、分母は「映画を視聴していない人がサービスを継続したかどうか」のオッズです。

それぞれの確率は表より求められます。

よって、この時のオッズ比は、

\[ オッズ比 = (0.8 \div 0.2) \div (0.4 \div 0.6) = 6 \]

となります。

オッズ比は1を基準とし、大きいほど良い影響が、小さいほど悪い影響があると判断できる指標です。

オッズ比から、「あるカテゴリの映画の視聴はサービスの継続に良い影響を与えている」、つまり「あるカテゴリの映画を視聴しているユーザは継続しやすい」と示すことができます。

反対に、オッズ比が1より小さいとき、その変数はサービスの継続を妨げている要因の可能性が高いです。

オッズ比やロジスティック回帰分析の結果の解釈についてより詳しく知りたい方は、以下の記事をご参照ください。

回帰係数からオッズ比を計算する

さきほど説明した回帰係数を用いると、オッズ比が簡単に計算できます。

ロジスティック回帰分析を実装する際には、回帰係数を算出してからオッズ比の計算を行いましょう。

回帰係数とオッズ比の関係は以下の通りです。

  • 回帰係数:\( a,b \)
  • オッズ比:\( e^a,e^b \)

e(ネイピア数)の累乗部分に回帰係数をとることで、オッズ比を算出できます。

e(ネイピア数):成長や変化を計算する際に用いられる特別な数値(値は約2.7)。

今回ご紹介した5つのステップを実践することで、ロジスティック回帰分析を実行できます。

プログラミング言語を活用すれば簡単に分析できますが、プログラミングを行わなければ分析の難易度は跳ね上がります。

「ロジスティック回帰分析をプログラミングで行うのが難しい!」という方は、『Caccoのデータサイエンス』にお問い合わせください!

かっこのデータサイエンス公式

ロジスティック回帰分析における3つの注意点

ロジスティック回帰分析の 3つの注意点のアイキャッチ画像

ロジスティック回帰分析は非常に便利な分析手法ですが、使い方を間違えるとまったく役に立たない予測モデルができてしまいます。

ロジスティック回帰分析を行う時に注意すべきことは以下の3つです。

  • ①多重共線性が発生する
  • ②過学習になる可能性がある
  • ③データ数が大きくなければならない

間違った分析結果を信じてビジネスの戦略を立ててしまうと、お金や時間を大きく無駄にしてしまうリスクがあるため注意が必要です。

それぞれの注意点について、以下で詳しく解説していきます。

①多重共線性が発生する

多重共線性とは、分析に使うデータ項目の間に高い相関がある場合に発生する現象です。

例えば、ある商品の購入有無を分析する際に、年齢と収入を説明変数として用いるとします。

年齢が上がるにつれ、収入が増加する傾向にあることから、2つの項目の間には高い相関があります。

この状態でロジスティック回帰分析を行うと、年齢と収入に相関があるために、どちらも同じくらい重要だと過剰に評価され、重要であるはずの他の変数を見つけ出せなくなってしまいます。

②過学習になる可能性がある

過学習とは、過去の訓練データの細かい特徴ばかりを真面目に覚えすぎてしまい、未知のデータに対する予測が当たらなくなることです。

手元にある大量の項目(説明変数)を、すべて無理やり使って複雑すぎるルールを作ろうとしたときによく発生します。

本当に必要な項目だけを厳選してシンプルな計算式を保つことで、新しいデータにも柔軟に対応できる実用的なモデルに仕上がります。

③データ数が大きくなければならない

ロジスティック回帰分析で精度の高い結果を出すためには、ある程度まとまった量の大きなデータが欠かせません。

数百件程度の少なすぎるデータで分析を行うと、少し特異な値(外れ値)があればその値に予測結果が影響され、正しい結果を得られなくなります。

まずは日々の業務の中でしっかりとデータを蓄積する仕組みを整え、十分なデータ数が集まった段階で本格的な分析に踏み切ることをおすすめします。

PythonやRを使えばロジスティック回帰分析が簡単になる

PythonやRといったプログラミング言語を使えば、ロジスティック回帰分析を実装できます。

プログラミングと聞くと難しそうに感じるかもしれませんが、既製のひな型を使ったり生成AIに壁打ちしたりすることで、初心者でも簡単な分析なら実行できます。

ここでは、自分のパソコンですぐに試すことができるPythonとRのサンプルコードをそれぞれ紹介します。

Pythonを使った実装例

PythonはGoogleが無償で提供している「Google Colab」というツールで簡単に利用できます。

Pythonにはscikit-learnという機械学習ライブラリがあり、そのライブラリを用いてロジスティック回帰分析を実装するのが一般的です。

まずscikit-learnをインストールします。(既にインストールしている場合はスキップしてください)

pip install scikit-learn

今回はロジスティック回帰分析のひな型を用意しました。

以下のコードで日本語になっている部分を修正して、ロジスティック回帰分析に利用してください。

必要なライブラリ(関数が多く用意されているデータ)のインポートから、簡単な評価まで行えます。

import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, confusion_matrix

# データの読み込み(ここではCSVファイルを仮定します)
data = pd.read_csv('データのファイルパス.csv')
# 特徴量と目的変数を分割 X = data.drop(columns=['目的変数の列名']) y = data['目的変数の列名'] # 訓練データとテストデータに分割 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # ロジスティック回帰モデルの作成と学習 model = LogisticRegression() model.fit(X_train, y_train) # テストデータでの予測 y_pred = model.predict(X_test) # 精度の評価(正解率のみ) accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) # 混同行列の表示(オッズで出てきた表) conf_matrix = confusion_matrix(y_test, y_pred) print("Confusion Matrix:") print(conf_matrix)

# 回帰係数の表示
coefficients = model.coef_[0]# オッズ比の計算
odds_ratios = np.exp(coefficients)

# 項目とオッズ比の表示
print("オッズ比:")
for feature, odds_ratio in zip(X.columns, odds_ratios):
print(f"{feature}: {odds_ratio}")

Rを使った実装例

R言語は統計やデータ分析の場面でよく使われている強力なツールであり、標準の機能だけでロジスティック回帰分析をスムーズに実行できます。

「glm関数」と呼ばれる専用の関数を使うことで、データの読み込みからモデルの作成までを非常に短いコードで書き上げることが可能です。

以下のサンプルコードは、目的変数と説明変数を指定するだけで分析が完了する、シンプルな構造になっています。

# データの読み込み
data <- read.csv('データのファイルパス.csv') # ロジスティック回帰モデルの作成
model <- glm(目的変数の列名 ~ ., data = data, family = binomial) # 分析結果(回帰係数など)の表示
summary(model) # オッズ比の計算
exp(coef(model))

まとめ

今回は2値の分類と確率の予測に優れたロジスティック回帰分析について、基本的な仕組みから活用事例、プログラミング言語を使った簡単な実装例までを解説しました。

ロジスティック回帰分析を行うことで、2値の分類を予測できるだけでなく、どの変数が結果により強い影響を及ぼしているのかを分析できます。

医療やECサイトだけでなく、多くの業務においてロジスティック回帰分析を行うことで、要因分析が可能です。

しかし、実際に自社の環境でプログラミングを実行したり、多重共線性などの落とし穴を回避して正しい解釈を導き出したりするのは、少しハードルが高いかもしれません。

「本格的なデータ分析を始めたいけど、何から始めればよいか分からない…」という方は、『Caccoのデータサイエンス』にお問い合わせください。

売上や顧客のデータを整理するところから、分析の目的と課題の設定、分析結果を業務に組み込むための打ち手の提案まで、一貫して伴走支援いたします。

かっこのデータサイエンス公式

関連記事

目次