最小二乗法とは?意味・求め方・回帰直線の見方をわかりやすく解説

基礎

データが2つあるとき、

  • xx が増えると yy も増えるのか
  • どれくらいの割合で増えるのか
  • 全体としてどんな直線で近似できるのか

を知りたくなることがあります。

例えば

  • 勉強時間とテストの点数
  • 広告費と売上
  • 気温とアイスの売上

のような組み合わせです。

こういうときによく使うのが、 データ全体にできるだけよく合う直線を求める 最小二乗法 です。

この記事では、最小二乗法が何をしているのか、なぜ二乗するのか、 そして回帰直線をどう求めてどう読めばよいのかを順に見ていきます。

1. 最小二乗法とは何か

最小二乗法は、一言でいうと

データと直線のずれができるだけ小さくなるように、直線を決める方法

です。

たとえば、各データが

(x1,y1),(x2,y2),,(xn,yn)(x_1,y_1),(x_2,y_2),\dots,(x_n,y_n)

で与えられているとします。

このとき、

y=ax+by=ax+b

という形の直線で全体の傾向を表したいことがあります。

でも、実際のデータはふつう一直線上にぴったり並びません。

そこで、

どの直線なら全体としていちばん無理がないか

を決める必要があります。

その基準として使うのが最小二乗法です。

2. 何を「小さく」するのか

ある点 (xi,yi)(x_i,y_i) に対して、直線 y=ax+by=ax+b が予測する値は

axi+bax_i+b

です。

したがって、実際の値 yiy_i との差

yi(axi+b)y_i-(ax_i+b)

が、その点での ずれ です。

このずれを 残差 と呼びます。

残差がすべて小さければ、 その直線はデータによく合っていると考えられます。

ただし、残差をそのまま全部足すだけでは困ります。

正のずれと負のずれが打ち消し合ってしまうからです。

そこで最小二乗法では、 各残差を二乗して足した

i=1n(yi(axi+b))2\sum_{i=1}^{n}\left(y_i-(ax_i+b)\right)^2

をできるだけ小さくします。

これを 残差平方和 といいます。

3. なぜ二乗するのか

最小二乗法で二乗を使う理由は主に3つあります。

1. 符号が消える

残差をそのまま足すと、

  • 上にずれた点
  • 下にずれた点

が打ち消し合います。

二乗すれば必ず 00 以上になるので、 ずれの大きさを素直に足し合わせられます。

2. 大きなずれをより強く反映できる

例えば残差が 1133 なら、 二乗すると 1199 です。

つまり、大きなずれほど強く評価されます。

そのため

一部の点だけ大きく外れている直線

が選ばれにくくなります。

3. 計算しやすい

絶対値を使って

yi(axi+b)\sum |y_i-(ax_i+b)|

を最小にする方法も考えられますが、 二乗のほうが微分しやすく、式がきれいにまとまります。

その結果、回帰直線の係数 a,ba,b を公式で求められます。

4. 最小二乗法で決まる直線

最小二乗法で求める直線は、 ふつう 回帰直線 と呼ばれます。

式は

y=ax+by=ax+b

です。

ここで

  • aa: 傾き
  • bb: 切片

です。

最小二乗法では、

i=1n(yi(axi+b))2\sum_{i=1}^{n}\left(y_i-(ax_i+b)\right)^2

が最小になるように a,ba,b を選びます。

この条件から、傾きと切片は次の形で求まります。

a=(xixˉ)(yiyˉ)(xixˉ)2a=\frac{\sum (x_i-\bar{x})(y_i-\bar{y})}{\sum (x_i-\bar{x})^2} b=yˉaxˉb=\bar{y}-a\bar{x}

ここで

  • xˉ\bar{x}xx の平均
  • yˉ\bar{y}yy の平均

です。

つまり、

平均からのずれ方を使って、いちばん合う傾きと切片を決めている

わけです。

5. 公式の意味を直感的に見る

傾き

a=(xixˉ)(yiyˉ)(xixˉ)2a=\frac{\sum (x_i-\bar{x})(y_i-\bar{y})}{\sum (x_i-\bar{x})^2}

を見ると、分子には

(xixˉ)(yiyˉ)(x_i-\bar{x})(y_i-\bar{y})

が入っています。

これは、xxyy が同じ向きにずれているかを見る量です。

  • 両方とも平均より大きい
  • 両方とも平均より小さい

なら積は正になります。

つまり、xx が増えると yy も増えやすいなら、 分子は正に大きくなります。

一方、分母の

(xixˉ)2\sum (x_i-\bar{x})^2

は、xx のばらつきの大きさです。

したがって傾き aa は、

xx の変化に対して、yy がどれくらい一緒に動くか

を表していると見られます。

また

b=yˉaxˉb=\bar{y}-a\bar{x}

より、回帰直線は必ず

(xˉ,yˉ)(\bar{x},\bar{y})

を通ります。

これは最小二乗法の大事な性質です。

6. 実際に計算してみる

では、次のデータで回帰直線を求めてみます。

xx: 勉強時間(時間)yy: 理解度スコア
A12
B23
C35
D44
E56

まず平均を求めます。

xˉ=1+2+3+4+55=3\bar{x}=\frac{1+2+3+4+5}{5}=3 yˉ=2+3+5+4+65=4\bar{y}=\frac{2+3+5+4+6}{5}=4

次に偏差とその積を並べます。

xixˉx_i-\bar{x}yiyˉy_i-\bar{y}(xixˉ)2(x_i-\bar{x})^2
A2-22-24444
B1-11-11111
C00110000
D11000011
E22224444

したがって

(xixˉ)(yiyˉ)=9\sum (x_i-\bar{x})(y_i-\bar{y})=9 (xixˉ)2=10\sum (x_i-\bar{x})^2=10

です。

よって傾きは

a=910=0.9a=\frac{9}{10}=0.9

となります。

さらに切片は

b=yˉaxˉ=40.9×3=1.3b=\bar{y}-a\bar{x}=4-0.9\times 3=1.3

なので、回帰直線は

y=0.9x+1.3y=0.9x+1.3

です。

この式は、

勉強時間が1時間増えると、理解度スコアが平均的には約0.9増える傾向がある

と読めます。

例えば x=6x=6 を代入すると

y=0.9×6+1.3=6.7y=0.9\times 6+1.3=6.7

となるので、 6時間勉強したときの理解度スコアは約 6.76.7 と予測されます。

7. 最小二乗法の見方

最小二乗法で得られた回帰直線を見るときは、 特に次の3つを押さえると読みやすくなります。

1. 傾き aa

傾き aa は、

xx が1増えたときに、yy が平均的にどれくらい増減するか

を表します。

  • a>0a > 0: 右上がり
  • a<0a < 0: 右下がり
  • a0a \approx 0: ほぼ水平

です。

たとえば

y=0.9x+1.3y=0.9x+1.3

なら、

xx が1増えると、yy は平均的に約0.9増える

と読めます。

つまり傾きは、 「増え方・減り方の割合」 を見るためのものです。

2. 直線に値を代入すると予測に使える

回帰直線が

y=ax+by=ax+b

と求まったら、 知りたい xx の値を代入することで、 そのときの yy を予測できます。

たとえば

y=0.9x+1.3y=0.9x+1.3

x=6x=6 を入れると

y=0.9×6+1.3=6.7y=0.9\times 6+1.3=6.7

です。

したがって、

x=6x=6 のときは y6.7y\approx 6.7 と予測される

と見られます。

最小二乗法の回帰直線は、 単に「傾きが正か負か」を見るだけでなく、

  • ある xx のときの yy を見積もる
  • データ全体の傾向を式で表す

ためにも使えます。

3. 切片 bb

切片 bbx=0x=0 のときの予測値です。

式全体を書くには必要な値で、 予測をするときにも必ず使います。

ただし、切片そのものを解釈するときは少し注意が必要です。

実際のデータに x=0x=0 が含まれていないなら、bb の数値だけを強く解釈しすぎないほうが安全です。

その場合は、切片を単独で読むというより、 回帰直線全体を作るための一部 として見るほうが自然です。

8. 使うときの注意点

最小二乗法は便利ですが、気をつける点もあります。

1. 直線で近似する方法である

最小二乗法でここまで見てきたのは、

直線で近似する

という話です。

実際の関係が曲線的なら、 直線ではうまく表せないことがあります。

2. 外れ値に影響されやすい

残差を二乗するので、 極端に外れた点は強く効きます。

そのため、1つの外れ値のせいで 回帰直線がかなり引っ張られることがあります。

3. 予測は範囲外ほど危ない

データが x=1x=1 から 55 の範囲しかないのに、 x=50x=50 の予測を直線で出しても信頼しにくいです。

これは 外挿 と呼ばれ、特に注意が必要です。

4. 因果関係を示すわけではない

回帰直線がきれいに引けても、

xx が原因で yy が変わる

とまでは言えません。

あくまで

そういう傾向がデータに見えている

ということです。

9. どんな場面で使うのか

最小二乗法は、次のような場面でよく使われます。

  • 勉強時間と点数の関係を直線で表したい
  • 広告費と売上の傾向をざっくり見たい
  • 実験データから近似式を作りたい
  • 将来の値を大まかに予測したい

特に、

  • 散布図を見てだいたい直線っぽい
  • まずは単純なモデルで全体傾向をつかみたい

というときに使いやすい方法です。

まとめ

最小二乗法は、

データと直線のずれの二乗和が最小になるように、いちばん合う直線を求める方法

でした。

ポイントをまとめると、

  • 残差は yi(axi+b)y_i-(ax_i+b) で表す
  • その二乗和を最小にする
  • 回帰直線は y=ax+by=ax+b の形で求まる
  • 傾きは変化の向きと大きさを表す
  • ただし外れ値や非線形の関係には注意が必要

という流れです。

最小二乗法は式だけ見ると少し重たく見えますが、 「実際の値と予測値のずれをできるだけ小さくする」と考えると、 かなり自然な方法だと分かります。

統計ひろばで最小二乗法をすぐ試す

ここまで読んで最小二乗法の考え方がつかめたら、 次は実際のデータで試してみるのがおすすめです。

手計算で仕組みを理解することは大事ですが、 データ数が増えると計算はすぐに面倒になります。

統計ひろば では、 最小二乗法の計算をそのまま試せます。

2列のデータを入力すれば、

  • 回帰直線
  • 傾き
  • 切片
  • 散布図

のような情報をあわせて確認できるので、 手計算で理解したあとに実データへそのままつなげやすいです。

まずはサンプルデータで回帰直線の傾きや散布図の見え方を確認してから、 自分のデータに置き換えて試してみてください。

最小二乗法を一度手で計算してみると、 回帰直線の式がどう決まるのかがかなり見えやすくなります。 そのうえで実際のデータを素早く確認したいときは、ツールも活用してみてください。

ひろ アイコン ひろ