初心者向け!線形回帰をわかりやすく解説:統計と機械学習の基本

線形回帰とは、統計学や機械学習で最も基本的かつ強力な手法の一つです。一言で言えば「あるデータ(原因)と別のデータ(結果)の関係を一本の直線で表し、未来を予測する」ためのツールです。

この記事では、データサイエンスの初学者でも理解できるように、線形回帰の基本的な考え方から、その種類、そしてPythonを使った具体的な実装例までを丁寧に解説していきます。

線形回帰の基本的な考え方

線形回帰は「線形」と「回帰」という2つの言葉から成り立っています。

  • 回帰 (Regression): 「元に戻る」という意味があります。データ全体の傾向(平均的な関係性)に注目し、それを使って数値を予測する手法を指します。
  • 線形 (Linear): 「直線的」という意味です。データ間の関係性を直線で表現することを指します。

つまり線形回帰とは、2つの変数の関係を直線的な式で表現する手法のことです。

身近な例:勉強時間とテストの点数

例えば、「勉強時間」と「テストの点数」の関係を考えてみましょう。一般的に、勉強時間が長くなるほど、テストの点数も高くなる傾向がありますよね。この関係性をグラフにプロットすると、データはおおよそ右肩上がりの直線に近い形で分布するはずです。

線形回帰では、これらのデータに最もフィットする一本の直線を引きます。 この直線の式が分かれば、「もし10時間勉強したら、テストの点数は何点くらいになるか?」といった予測が可能になります。

このとき、予測したい値(テストの点数)を目的変数(または従属変数)と呼び、予測の根拠となる値(勉強時間)を説明変数(または独立変数)と呼びます。

線形回帰の種類

線形回帰は、扱う説明変数の数によって主に2つの種類に分けられます。

種類説明説明変数の数
単回帰分析1つの説明変数から1つの目的変数を予測します。1つ「勉強時間」だけを使って「テストの点数」を予測する。
重回帰分析複数の説明変数から1つの目的変数を予測します。2つ以上「勉強時間」「睡眠時間」「過去の平均点」を使って「テストの点数」を予測する。

単回帰分析は関係性をシンプルに理解するのに役立ちますが、現実の事象は多くの要因が複雑に絡み合っています。そのため、より精度の高い予測を行うためには、複数の要因を考慮できる重回帰分析が使われることが一般的です。

機械学習における線形回帰とPythonでの実装

線形回帰は、統計学の手法であると同時に、機械学習における「教師あり学習」の基本的なアルゴリズムの一つでもあります。 機械学習では、過去のデータ(説明変数と、それに対応する正解の目的変数)をコンピュータに与えて学習させ、未知のデータに対する予測モデルを構築します。

ここでは、Pythonの有名な機械学習ライブラリであるscikit-learnを使って、簡単な線形回帰モデルを実装する例を紹介します。

import numpy as np
from sklearn.linear_model import LinearRegression
# --- データ準備 ---
# 説明変数X: 勉強時間 (時間)
X = np.array([,,,,])
# 目的変数y: テストの点数 (点)
y = np.array()
# --- モデルの学習 ---
# 1. 線形回帰モデルのインスタンスを作成
model = LinearRegression()
# 2. モデルにデータを学習させる (フィットさせる)
model.fit(X, y)
# --- 新しいデータで予測 ---
# 3. 6時間勉強した場合の点数を予測
new_X = np.array([])
predicted_score = model.predict(new_X)
print(f"6時間勉強した場合の予測点数: {predicted_score:.2f}点")
# 学習したモデルの係数(傾き)と切片を表示
print(f"モデルの傾き (係数): {model.coef_:.2f}")
print(f"モデルの切片: {model.intercept_:.2f}")
# 予測結果の例:
# 6時間勉強した場合の予測点数: 75.34点
# モデルの傾き (係数): 7.74
# モデルの切片: 28.90 

このコードは、勉強時間と点数の関係を学習し、新しい勉強時間(6時間)に対するテストの点数を予測しています。scikit-learnライブラリを使えば、複雑な計算を意識することなく、数行のコードで簡単に予測モデルを構築・利用できます。

線形回帰の活用事例

線形回帰はそのシンプルさと解釈のしやすさから、ビジネスの現場から科学研究まで、非常に幅広い分野で活用されています。

  • 不動産価格の予測
    物件の広さ、部屋数、駅からの距離、築年数といった複数の説明変数から、その物件の適正な家賃や販売価格(目的変数)を予測します。これは重回帰分析の典型的な例です。
  • 売上予測
    広告費、天候、季節、キャンペーンの有無などの要因から、特定の商品や店舗の将来の売上を予測します。 これらの予測は、在庫管理やマーケティング戦略の最適化に役立ちます。
  • 医療・農業分野での応用
    医療分野では、患者の様々な検査値から特定の病気のリスクを予測したり、農業分野では気温や降水量、日照時間といった気象データから作物の収穫量を予測したりするのに利用されます。

まとめ

線形回帰は、データ間の関係性を直線でモデル化し、数値を予測するためのシンプルで強力な手法です。

データ分析や機械学習の世界への第一歩として、線形回帰の考え方を理解することは非常に重要です。この基本的なモデルから、より複雑で高度な分析手法へと学びを進めていくための素晴らしい出発点となるでしょう。

コメントを残す

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