初心者向け!複数の要因から結果を予測する重回帰分析入門

1. 重回帰分析とは?

重回帰分析(じゅうかいきぶんせき)とは、複数の原因(説明変数)から、1つの結果(目的変数)がどのような影響を受けるのかを明らかにし、将来の結果を予測するための統計手法です。 例えば、「気温」と「広告費」という2つの要因から、「アイスクリームの売上」を予測する、といった場面で活用されます。

似た手法に「単回帰分析」がありますが、これは1つの原因から結果を分析するものです。 例えば、「気温」だけから「アイスクリームの売上」を予測するのが単回帰分析です。 しかし、実際のビジネスや社会現象は、複数の要因が複雑に絡み合って成り立っています。そのため、複数の要因を同時に扱える重回帰分析は、より現実に近い、精度の高い分析や予測を可能にする非常に実用的な手法です。

2. 重回帰分析の目的と活用例

重回帰分析の主な目的は、大きく分けて「予測」と「要因分析」の2つです。

  • 予測: 各要因が結果に与える影響の大きさを数式で表し、その数式を使って将来の結果を予測します。 新店舗の売上予測や、Webサイトのアクセス数予測などに使われます。
  • 要因分析: どの要因が結果に対して、どの程度強く影響しているのかを明らかにします。 これにより、売上向上に最も効果的な施策は何か、といった意思決定の助けになります。

具体的な活用例をいくつか見てみましょう。

活用シーン目的変数(知りたい結果)説明変数(影響を与える要因の例)
飲食店の売上予測1日の売上高店舗の面積、座席数、駅からの距離、周辺の人口、広告費
不動産の家賃査定家賃部屋の広さ、駅からの徒歩時間、築年数、建物の構造
ECサイトのコンバージョン率分析コンバージョン率サイト訪問者数、広告費、セールの有無、ページの読み込み速度
従業員のパフォーマンス評価成果(パフォーマンス)勤続年数、研修時間、過去の評価

3. 重回帰分析の仕組み

重回帰分析では、目的変数と説明変数の関係を以下のような数式(重回帰式)で表します。

Y = a + b1X1 + b2X2 + ... + bnXn + ε

少し難しく見えるかもしれませんが、各記号が何を表しているか分かれば簡単です。

記号名称説明
Y目的変数予測したい結果(例:売上、家賃)
X1, X2, …説明変数結果に影響を与える要因(例:店舗面積、広告費)
b1, b2, …偏回帰係数各説明変数が目的変数にどれだけ影響を与えるかを示す影響力の大きさ。プラスなら結果を増やし、マイナスなら結果を減らす影響があることを示す。
a切片(定数項)全ての説明変数が0のときの目的変数の値。分析のベースとなる数値。
ε (イプシロン)誤差項実際の値と予測値のズレ。この式では説明しきれない部分。

この分析で特に重要なのが「偏回帰係数」です。この値を見ることで、どの要因が結果に最も強く影響しているのかを知ることができます。

4. Pythonで実践!重回帰分析

それでは、実際にPythonのライブラリscikit-learnを使って重回帰分析を試してみましょう。 ここでは、「広告費」と「店舗面積」から「売上」を予測する簡単なモデルを作成します。

import pandas as pd
from sklearn.linear_model import LinearRegression
# 1. データの準備
# サンプルデータを作成
data = { '売上':, '広告費':, '店舗面積':
}
df = pd.DataFrame(data)
# 2. 目的変数と説明変数を設定
# 目的変数Y(予測したいもの)
Y = df['売上']
# 説明変数X(予測に使うもの)
X = df[['広告費', '店舗面積']]
# 3. モデルの作成と学習
model = LinearRegression()
model.fit(X, Y)
# 4. 結果の確認
# 偏回帰係数(各要因の影響度)
print(f"偏回帰係数: {model.coef_}")
# 切片
print(f"切片: {model.intercept_}")
# 5. 新しいデータで予測
# 新しい店舗データ(広告費:90, 店舗面積:45)で売上を予測
new_store = []
predicted_sales = model.predict(new_store)
print(f"予測売上: {predicted_sales}") 

このコードを実行すると、学習データに基づいて計算された偏回帰係数と切片が出力されます。そして、それらの値を使って、新しい店舗の売上を予測することができます。

5. 重回帰分析の注意点

重回帰分析は強力な手法ですが、正しく使うためにはいくつかの注意点があります。特に初心者が気をつけたいのが「多重共線性(たじゅうきょうせんせい)」です。

  • 多重共線性 (マルチコリニアリティ)
    これは、説明変数同士の相関が非常に高い状態のことです。 例えば、「駅からの徒歩時間」と「駅からの距離」を両方説明変数に入れてしまうようなケースです。この2つは非常に似た情報を持つため、モデルがどちらの要因が本当に結果に影響しているのか正しく判断できなくなり、分析結果の信頼性が損なわれる可能性があります。 VIF(分散拡大係数)という指標でチェックし、値が高い場合はどちらかの変数を削除するなどの対処が必要です。
  • 変数の数
    説明変数をやみくもに増やすと、モデルが複雑になりすぎて、手元のデータにだけ過剰に適合してしまう「過学習」という問題が起きやすくなります。 結果と本当に関係のある変数だけを選ぶことが重要です。
  • データの種類
    重回帰分析では、基本的にすべての変数が数値データである必要があります。 「はい・いいえ」や「A・B・C」のようなカテゴリデータを使う場合は、「ダミー変数」という手法を使って0や1などの数値に変換する必要があります。

まとめ

重回帰分析は、複数の要因から結果を予測し、その関係性を解明するための強力なツールです。ビジネスにおける売上予測から、研究における要因分析まで、幅広い分野で活用されています。仕組みと注意点を正しく理解し、データに基づいた客観的な意思決定に役立てていきましょう。

コメントを残す

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