3.1-3.2 線形回帰モデルと最小二乗法

データから未来を予測したい。でも、どうやって?

統計学習の最も基本的かつ重要な手法である線形回帰を学びます。「データから直線(または平面)を引く」という単純な発想が、どのような数学的構造を持ち、なぜこれほど強力なのかを探っていきます。

線形回帰は単純に見えて、実は深い幾何学的・統計学的意味を持っています。最小二乗法の解が「射影」という幾何学的操作と等価であること、そしてその解が最良の性質を持つことを、視覚的に理解していきましょう。

なぜ線形回帰なのか?

データから未来を予測したい。でも、どうやって?

入力 X から出力 Y を予測する関数 f(X) を見つけることが目標です。 しかし、f はどんな形でもありえます。複雑な曲線かもしれないし、とんでもなく入り組んだ形かもしれない。

ここで、最もシンプルな仮定をしてみましょう。

「f は直線(または平面)である」

これが線形回帰の出発点です。なぜこんな単純な仮定をするのか?

  1. 解釈しやすい: 各変数がどれだけ結果に影響するか、係数を見れば一目瞭然
  2. 計算が簡単: 解が明示的な公式で求まる
  3. 意外と強力: 多くの実問題で、線形モデルは驚くほどよく働く
複雑な曲線とシンプルな直線の対比

シンプルさは弱点ではなく、武器なのです。

まずは1変数から - 単純線形回帰

まずは最もシンプルなケースから始めましょう。入力変数が1つだけの場合です。

身長から体重を予測する、勉強時間からテストの点数を予測する...どちらも「1つの入力から1つの出力を予測」する問題です。

このとき、予測式は高校で習った1次関数そのものです:

$$\hat{y} = \beta_0 + \beta_1 x$$

たとえば、身長と体重の関係が $\hat{y} = -50 + 0.8x$ だったとしましょう(xはcm、yはkg)。 これは「身長が1cm増えると、体重は0.8kg増える傾向がある」ことを意味します。

2D平面での線形回帰フィッティング

最小二乗法 - 「最も近い」直線を見つける

さて、どの直線が「最も良い」のでしょうか?

N 個のデータ点 $(x_1, y_1), (x_2, y_2), \ldots, (x_N, y_N)$ があるとします。 各点について、予測値 $\hat{y}_i = \beta_0 + \beta_1 x_i$ と実際の値 $y_i$ の差を考えます。この差を残差(residual)と呼びます。

直感的には、「すべての残差ができるだけ小さい直線」が良い直線です。

では、「残差の合計が最小」を基準にすればいい?...残念ながら、これはうまくいきません。 正の残差と負の残差が打ち消し合って、見かけ上は小さくなってしまうからです。

そこで、残差を二乗してから足し合わせます。これが残差二乗和(RSS: Residual Sum of Squares)です:

$$\text{RSS}(\beta_0, \beta_1) = \sum_{i=1}^{N} (y_i - \beta_0 - \beta_1 x_i)^2$$

この RSS を最小にする $\beta_0, \beta_1$ を求める方法が最小二乗法です。

残差の視覚化 - データ点から直線への垂直距離

最小二乗解の公式

RSS を最小にする係数は、高校で習う微分を使って求められます。

二次関数の最小値を求めるのと同じ要領です。RSS を $\beta_0$$\beta_1$ でそれぞれ微分して 0 とおくと、次の公式が得られます:

$$\hat{\beta}_1 = \frac{\sum_{i=1}^{N}(x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^{N}(x_i - \bar{x})^2}$$
$$\hat{\beta}_0 = \bar{y} - \hat{\beta}_1 \bar{x}$$

ここで $\bar{x}$, $\bar{y}$ はそれぞれ x, y の平均です。

この公式を言葉で説明しましょう。

分母は「x がどれだけばらついているか」を表します。平均からの距離を二乗して足し合わせたもの、つまり 分散 です(正確には分散に N をかけたもの)。

分子は「x と y がどれだけ一緒に動くか」を表します。x が平均より大きいとき y も平均より大きければ正、逆なら負。これを 共分散 と呼びます(正確には共分散に N をかけたもの)。

つまり傾きは「x と y の連動度」を「x のばらつき」で割ったものです。

分散と共分散の視覚的理解

複数の変数へ - 重回帰

入力変数が1つだけでは不十分なことがよくあります。 住宅価格を予測するなら、面積だけでなく、築年数、駅からの距離、部屋数...いろいろな要素を考慮したいはずです。

入力が p 個の変数 $X_1, X_2, \ldots, X_p$ であるとき、線形モデルは次の形になります:

$$f(X) = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_p X_p$$

この式の意味を紐解きましょう:

たとえば、住宅価格を予測するモデルで $\beta_{\text{面積}} = 50$ なら、「他の条件が同じで面積が1平方メートル増えると、価格は50万円上がる」という解釈ができます。

変数が2つなら、直線ではなく平面をフィットすることになります。3つ以上なら超平面(想像しにくいですが、平面の高次元版)です。

線形結合の視覚化 - 各項の寄与が足し合わさる

行列表記 - 一般化のための道具

変数が増えると、式を書くのが大変になります。そこで行列の出番です。

(ここは少し数学的になりますが、公式の意味さえ理解できれば先に進めます。詳細は後で戻ってきても大丈夫です。)

すべてのデータをまとめて書きましょう:

$\mathbf{X}$ の1列目は全て 1 です。これは切片 $\beta_0$ を他の係数と同じ形で扱うためのトリックです。

たとえば、3人の身長 (150, 160, 170) cm と面積 (20, 25, 30) m² から住宅価格を予測するなら:

$$\mathbf{X} = \begin{pmatrix} 1 & 150 & 20 \\ 1 & 160 & 25 \\ 1 & 170 & 30 \end{pmatrix}$$

1列目の「1」が $\beta_0$(切片)と掛け算され、2列目が $\beta_1$(身長の係数)と、3列目が $\beta_2$(面積の係数)と掛け算されます。

すると、N 個の予測値は $\mathbf{X}\boldsymbol{\beta}$ と書け、残差二乗和は:

$$\text{RSS}(\boldsymbol{\beta}) = (\mathbf{y} - \mathbf{X}\boldsymbol{\beta})^T(\mathbf{y} - \mathbf{X}\boldsymbol{\beta})$$

これを最小にする $\boldsymbol{\beta}$ を微分で求めると、正規方程式と呼ばれる式が得られます:

$$\mathbf{X}^T\mathbf{X}\hat{\boldsymbol{\beta}} = \mathbf{X}^T\mathbf{y}$$

$\mathbf{X}^T\mathbf{X}$ が逆行列を持つなら(通常は持ちます)、解は:

$$\hat{\boldsymbol{\beta}} = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}$$

これが最小二乗推定量です。データさえあれば、この公式で最適な係数が一発で求まります。

最小値を求める最適化の概念図

幾何学的解釈 - 射影としての最小二乗

ここからが、線形回帰の最も美しい部分です。少し抽象的になりますが、この見方ができると理解が一段深まります。

N 個の観測値を N 次元空間の1つの点(ベクトル $\mathbf{y}$)と見なしてみましょう。

たとえば、3人分のデータ (y₁, y₂, y₃) は3次元空間の1点として表せます。100人分なら100次元です。 少し不思議に感じるかもしれませんが、こうすることで幾何学のツール(距離、角度、射影など)が使えるようになります。

一方、$\mathbf{X}\boldsymbol{\beta}$ は何でしょうか?$\boldsymbol{\beta}$ を変えると、$\mathbf{X}\boldsymbol{\beta}$$\mathbf{X}$ の列ベクトルの「ブレンド」(線形結合)として表されます。

2本のベクトルを様々な比率でブレンドすると、平面が作れます。3本なら3次元空間...というように、$\mathbf{X}$ の列が張る空間を 列空間 $\mathcal{C}(\mathbf{X})$ と呼びます。

最小二乗法は「$\mathbf{y}$ に最も近い $\mathbf{X}\boldsymbol{\beta}$ を見つける」ことでした。 幾何学的に言えば、これは $\mathbf{y}$ を列空間に射影する ことと同じです!

$$\hat{\mathbf{y}} = \mathbf{X}\hat{\boldsymbol{\beta}} = \mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}$$

この射影を行う行列 $\mathbf{H} = \mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T$ハット行列 と呼ばれます。

ちなみに、$\hat{\mathbf{y}}$(「ワイハット」と読みます)の「^」記号は統計学で「推定値」を表す慣習です。 「$\mathbf{y}$ に帽子(ハット)をかぶせて $\hat{\mathbf{y}}$ にする行列」だから「ハット行列」という覚え方ができますね。

残差 $\mathbf{y} - \hat{\mathbf{y}}$ は、列空間に直交します。これが「最も近い」ことの数学的意味です。

高次元空間での射影を3Dで視覚化

なぜ最小二乗法が「最良」なのか?

最小二乗法はなぜ「良い」のでしょうか?直感的には残差を小さくしているから良さそうですが、もっと深い理由があります。

ガウス・マルコフの定理という有名な結果があります。これを平たく言うと:

何度もデータを取り直したとき、最小二乗推定量は最も「安定した」答えを返す

もう少し正確に言うと、ある条件のもとで、最小二乗推定量は「線形で偏りのない推定量」の中で最も分散が小さいことが証明されています。これを英語の頭文字をとって「BLUE」(Best Linear Unbiased Estimator)と呼びます。

つまり、同じ条件を満たす他のどんな推定量よりも、最小二乗推定量は「安定している」のです。

複数の推定量の分散を比較する視覚化

推定の不確かさ - 信頼区間

推定量 $\hat{\boldsymbol{\beta}}$ は確率変数です。データが変われば、推定値も変わります。

では、$\hat{\boldsymbol{\beta}}$ はどれくらいばらつくのでしょうか?

誤差の分散を $\sigma^2$ とすると、$\hat{\boldsymbol{\beta}}$ の分散共分散行列は:

$$\text{Var}(\hat{\boldsymbol{\beta}}) = \sigma^2 (\mathbf{X}^T\mathbf{X})^{-1}$$

この式が教えてくれることは:

実際のデータでは $\sigma^2$ は未知なので、残差から推定します。これを使って、各係数の信頼区間を構成できます。

信頼区間の意味を正確に言うと:同じ条件でデータを100回取り直し、毎回この方法で区間を作ると、そのうち約95回は真の値を含む——これが「95%信頼区間」です。 区間が狭いほど、推定が精密であることを意味します。

係数の推定値と信頼区間の視覚化

まとめ - 線形回帰の全体像

ここまでの内容を振り返りましょう。

線形モデルは、入力の線形結合で出力を予測します:

$$f(X) = \beta_0 + \beta_1 X_1 + \cdots + \beta_p X_p$$

最小二乗法は、残差二乗和を最小にする係数を求めます:

$$\hat{\boldsymbol{\beta}} = (\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}$$

幾何学的には、これは $\mathbf{y}$ を列空間に射影することと同じです。

統計学的には、ガウス・マルコフの定理により、最小二乗推定量は線形不偏推定量の中で最良です。

線形回帰は単純ですが、この単純さの中に深い構造が隠れています。 次の章では、この基本形式をさまざまな方向に拡張していきます。

変数選択、正則化、非線形への拡張...線形回帰を土台として、より柔軟で強力なモデルへと進んでいきましょう。

線形回帰の全体像 - データからフィット、射影へ