X, Yデータの準備
データ分析や統計学の門を叩いた人が、最初期に必ずと言っていいほど直面する難所が「最小二乗法」です。散布図に引かれた一本の直線を見て「データのズレを最小にする方法」と頭では理解しつつも、多くの学習者が「そもそも、なぜ二乗しなければならないのか?」「絶対値の足し算ではいけないのか?」という根本的な疑問を抱えたまま立ち止まってしまいます。
機械学習モデルが日常の業務基盤に浸透した2026年の現在でも、その屋台骨を支える基礎理論の美しさと合理性は色褪せていません。本稿では、直感的なロジックから公式の導出プロセス、さらには実務でのエクセルやPythonを用いた再現手法までを徹底的に解きほぐしていきます。
📌 【この記事の重要ポイントまとめ】
- 要点1:二乗する最大の理由は「微分のしやすさ」と、誤差項が正規分布に従うときの統計学的整合性(最尤推定量の一致)にある。
- 要点2:残差平方和を傾きと切片でそれぞれ偏微分してゼロと置くことで、回帰係数を求める公式がエレガントに導き出せる。
- 要点3:実務ではエクセルの専用関数やPythonのライブラリを使えば、複雑な手計算なしに一瞬で最適なモデルを構築できる。
【直感解説】そもそも最小二乗法とは?回帰直線の傾きと切片を求める基本
最小二乗法を一言で表現するなら、「ばらつきのあるデータ群に対して、もっともズレが少なくなるような直線を引く数学的アプローチ」です。たとえば、気温とビールの売上、あるいは広告費と売上高のように、一方の値からもう一方の値を予測したいときに用いる単回帰分析の中核を担っています。
求める直線は一般に「$y = ax + b$」という一次関数で表されます。ここでいう「$a$」が回帰直線の傾き、「$b$」が切片です。手作業で直線を引こうとすると人によって微妙に角度や位置がブレてしまいますが、最小二乗法という統一ルールを用いることで、誰が計算しても完全に同じ「客観的に最も当てはまりが良い直線」を一意に特定できます。
この「当てはまりの良さ」を評価する指標こそが、実際のデータ点と直線上の予測値との差、すなわち「残差(あるいは誤差)」です。最小二乗法は、すべてのデータにおける残差を二乗して足し合わせた合計値を極限まで小さくする直線を割り出す手法なのです。
【核心の疑問】最小二乗法は「なぜ二乗するのか」絶対値ではダメな決定的理由
多くの人が直感的に抱く「ズレを小さくしたいなら、単純に残差の絶対値を足し算すればいいのではないか?」という疑問には、実用的かつ高度な数学的背景が存在します。二乗を選択する理由は、大きく分けて3つの視点から説明がつきます。
第1の理由は「符号の打ち消しを防ぐため」です。直線より上にあるデータはプラス、下にあるデータはマイナスの差を持ちます。これらを単純に足し合わせるとプラスとマイナスが相殺され、実際にはデータと直線が大きく乖離していても「ズレの合計がゼロ」という誤った最適解が生まれてしまいます。符号をプラスに統一する手段としては二乗のほかに絶対値もありますが、ここで第2の壁が立ちはだかります。
第2の決定的な理由は「微分計算の圧倒的な扱いやすさ」にあります。関数の最小値を求める際、高校数学で習う「微分して傾きをゼロと置く」手法が極めて有効です。しかし、絶対値関数は$x = 0$の地点で尖った形状(V字)になるため微分ができません。一方で二乗の関数(放物線)は滑らかな曲面を描くため、どこでもきれいに微分でき、方程式を解くだけで最小値を与える傾きと切片を一発で計算できるのです。
さらに第3の根拠として、統計理論における誤差項の正規分布との親和性が挙げられます。観測データの誤差が釣鐘型の正規分布に従うと仮定した場合、尤度(もっともらしさ)を最大化する「最尤法」で得られる解が、数学的に最小二乗法の解と完全に一致します。つまり、「二乗して足す」というアプローチは、単なる計算の都合にとどまらず、確率統計の観点からも最も合理的であることが証明されています。
【数式でスッキリ】残差平方和の最小化と公式の導出ステップ
最小二乗法の公式がどのように導き出されるのか、そのエッセンスを追ってみましょう。複雑に見える記号も、ステップごとに分解すれば驚くほど論理的です。
観測値を $(x_i, y_i)$、予測値を $\hat{y}_i = ax_i + b$ と置くと、各データの残差は $y_i - (ax_i + b)$ となります。この残差をすべて二乗して足し合わせたものが残差平方和($S$)です。
$$S(a, b) = \sum_{i=1}^{n} \{y_i - (ax_i + b)\}^2$$
この $S$ を最小化するために、傾き $a$ と切片 $b$ それぞれについて偏微分を行い、傾きがゼロになる連立方程式(正規方程式)を立てます。
$$ \frac{\partial S}{\partial a} = -2 \sum_{i=1}^{n} x_i \{y_i - (ax_i + b)\} = 0 $$
$$ \frac{\partial S}{\partial b} = -2 \sum_{i=1}^{n} \{y_i - (ax_i + b)\} = 0 $$
この連立方程式を丁寧に整理していくと、データの平均値($\bar{x}, \bar{y}$)や分散、共分散を用いた明快な最小二乗法の公式が姿を現します。
$$a = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2} = \frac{xとyの共分散}{xの分散}$$
$$b = \bar{y} - a\bar{x}$$
切片 $b$ の式が示す通り、最適な直線は必ず「データ全体の重心($\bar{x}, \bar{y}$)」を通過します。難解に見えた導出も、蓋を開けてみれば「偏差の積の合計を偏差平方和で割る」という、共分散と分散の比率に行き着くわけです。
【応用編】重回帰分析と行列アプローチ・ガウス・マルコフの定理の凄み
単一の変数だけでなく、複数の要因(たとえば立地・広さ・築年数から家賃を予測するようなケース)を扱う重回帰分析へと発展すると、手計算での連立方程式は現実的ではなくなります。ここで威力を発揮するのが行列を用いた最小二乗法の表現です。
目的変数のベクトルを $\mathbf{y}$、説明変数を行列としてまとめた計画行列を $\mathbf{X}$、求めたい回帰係数のベクトルを $\boldsymbol{\beta}$ と置くと、残差平方和の最小化問題は次のような極めてシンプルな正規方程式に集約されます。
$$\mathbf{X}^T \mathbf{X} \boldsymbol{\beta} = \mathbf{X}^T \mathbf{y}$$
逆行列が存在する条件下では、係数ベクトルは以下の一行で機械的に算出可能です。
$$\boldsymbol{\beta} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{y}$$
さらに、計量経済学や統計学の基礎として知られるのがガウス・マルコフの定理です。この定理は、誤差項の期待値がゼロで互いに無相関、かつ分散が一定であるという基本的な前提さえ満たしていれば、最小二乗法によって得られる推定量は「最良線形不偏推定量(BLUE: Best Linear Unbiased Estimator)」であることを保証しています。つまり、線形な推定量の中で最も推定のばらつき(分散)が小さく高精度であるという強力なお墨付きが与えられているのです。
【現場で使う】エクセル計算とPythonによる実装テクニック
理論の美しさを理解したところで、実際の業務現場でどう手を動かすかを見ていきます。数式の計算を自力で行う必要はなく、各種ツールが最適化されたアルゴリズムを備えています。
まずはビジネスの現場で最も手軽なエクセルでの計算手法です。手元の表データに対して、以下のワークシート関数をセルに入力するだけで瞬時に値が得られます。
・傾きを求める場合:=SLOPE(既知のy, 既知のx)
・切片を求める場合:=INTERCEPT(既知のy, 既知のx)
・重回帰も含めた詳細な統計量を出力する場合:=LINEST(既知のy, 既知のx)
散布図グラフを作成し、「近似曲線の追加」から「グラフに数式を表示する」にチェックを入れるだけでも、自動計算された回帰直線が即座にプロットされます。
一方、本格的なデータサイエンス環境ではPythonを用いた最小二乗法の実装が標準的です。NumPyを使えば数行のコードで完了します。
import numpy as np
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.1, 3.9, 6.2, 8.1, 9.8])
# 1次式(直線)でフィッティング(傾きと切片を算出)
slope, intercept = np.polyfit(x, y, deg=1)
機械学習フレームワークのscikit-learnを使用する場合も、LinearRegression() クラスを呼び出して fit(X, y) を実行するだけで、内部で行列計算が走り、最適な係数が求まります。
【最小二乗法】に関するよくある質問(FAQ)
Q1:データの中に異常値(外れ値)がある場合でも、そのまま最小二乗法を使って大丈夫ですか?
A1:注意が必要です。最小二乗法は残差を「二乗」するため、大きく外れた値の影響を極端に強く受けてしまい、直線全体が外れ値側に引っ張られます。明らかに誤記やノイズと判断できる外れ値はあらかじめ除外するか、Huber損失を用いるロバスト回帰など、外れ値に強い別のアプローチを検討するのが定石です。
Q2:現代のディープラーニングなどのAIでも、最小二乗法の考え方は使われていますか?
A2:幅広く使われています。ニューラルネットワークの回帰タスクにおいて最も頻繁に用いられる損失関数「平均二乗誤差(MSE: Mean Squared Error)」は、本質的に最小二乗法と同じ思想です。膨大なパラメータを最適化するバックプロパゲーションでも、二乗誤差の微分が重要な計算基盤となっています。
Q3:最小二乗法と最尤推定法の違いは何ですか?
A3:最小二乗法は「幾何学的な残差の二乗和を最小化する」という決定論的なアプローチです。これに対し、最尤推定法は「データが発生した確率(尤度)を最大化する」という確率統計的なアプローチをとります。ただし、誤差が正規分布に従うという条件下では、両者の計算結果は完全に同一になります。
まとめ:古典的名理論が支えるデータ活用の羅針盤
最小二乗法が考案されてから2世紀以上が経過した現在でも、あらゆるデータ分析の出発点として君臨し続けているのは、その直感的なわかりやすさと数学的な頑健さが両立しているからです。
「なぜ二乗するのか」という素朴な疑問を掘り下げることで、微分の利便性、正規分布との結びつき、そしてガウス・マルコフの定理が保証する推定精度の高さが見えてきます。ツールの進化によってブラックボックスになりがちなアルゴリズムですが、背景にある美しいメカニズムを正しく把握しておくことこそが、分析結果を読み誤らないための確かな武器となるはずです。 (出典: 最小 二 乗法(Yahoo!ニュース))