最小二乗法とは?平均との関係を解説

Data Science

2017.10.19

Topics

こんにちは。データサイエンスチーム tmtkです。
この記事では、最小二乗法と平均の関係について説明します。最小二乗法は標準的には回帰分析で用いられますが、実は平均も最小二乗法で捉えることができます。
また、最小二乗法と平均の間と同じ関係が、“最小一乗法”と中央値の間にもあることを説明します。

最小二乗法と回帰

最小二乗法とは、回帰分析のパラメータとして、残差の二乗和を最小にするパラメータを選択する手法です。
線形回帰を例にとって具体的に説明します。線形回帰とは、
1. データ(x_1, y_1) , (x_2, y_2), \ldots, (x_n, y_n) \in \mathbb{R}^d \times \mathbb{R}が与えられている。
2. 変数x, yの関係が y = \beta_1x + \beta_0で近似できると仮定する。
3. yの残差 y_i - (\beta_1x_i + \beta_0) の二乗和\sum_{i=1}^n \left(y_i - \left(\beta_1x_1 + \beta_0\right)\right)^2を最小にする\beta_1, \beta_0を計算する。(これが 最小二乗法
4. 3. で得られた\beta_1, \beta_0を用いて、データ列にy=\beta_1x + \beta_0の関係があると見積もる。
という手続きです。
このような、回帰の手続きのうち、残差の二乗和を最小化する手順のことを、最小二乗法といいます。
AWSのビッグデータ活用・機械学習導入支援サービス

最小二乗法と算術平均

データx_1, x_2, \ldots, x_n \in \mathbb{R} が与えられているとします。
いま、距離の二乗和関数L(\mu) := \sum_{i=1}^n (x_i - \mu) ^2を最小にする\muを求める問題を考えてみます。これは、二乗和を最小にする問題なので、ある意味で“最小二乗法”だと考えることができます。
L(\mu)を計算しましょう。
\begin{aligned}L(\mu) &= \sum_{i=1}^n(x_i - \mu)^2 \\&= \sum_{i=1}^n(\mu^2 - 2x_i\mu + x_i^2) \\&= n\mu^2 - 2(\sum_{i=1}^nx_i)\mu + \sum_{i=1}^n x_i^2 \\&= n(\mu - \frac{\sum_{i=1}^n x_i}{n})^2 -\frac{(\sum_{i=1}^n x_i)^2}{n} + \sum_{i=1}^n x_i^2.\end{aligned}
したがって、二次関数の一般論から、Lを最小にする\mu\mu = \frac{\sum_{i=1}^nx_i}{n}であることがわかります。これはx_1, x_2, \ldots, x_n \in \mathbb{R}の算術平均です。
したがって、算術平均は“最小二乗法”で計算できると考えることができます。これで、最小二乗法と算術平均の意外な関係が明らかになりました。

【事例集】AIや機械学習によるビッグデータ活用をしたい方にオススメ!

AWS導入事例集

<データ分析・機械学習の事例集>
「AIによるキャスト評価システムの構築」「データ分析基盤の運用費用9割削減」など、AWSを利用したAI、機械学習の成功事例をご紹介します。

“最小一乗法”と中央値

実は、最小二乗法と算術平均の間の関係が、“最小一乗法”と中央値の間にもあてはまることがわかります。以下で、これを説明します。なお、残差のL1ノルムの和の最小化をする方法はよく最小絶対値法などと呼ばれていますが、ここでは最小二乗法との対比を強調して“最小一乗法”と呼ぶことにします。
まず、中央値の定義を復習します。

定義. 中央値

  1. データの数が奇数個の場合。
    データx_1, x_2, \ldots, x_{2k+1} \in \mathbb{R}が与えられているとする。いま、データは昇順にならんでいるとする。すなわち、x_i \leq x_j (i < j)が成り立っているとする。
    このとき、このデータの中央値m
    m = x_{k+1}
    で定義する。
  2. データの数が偶数個の場合。
    データx_1, x_2, \ldots, x_{2k} \in \mathbb{R}が与えられているとする。いま、データは昇順にならんでいるとする。すなわち、x_i \leq x_j (i < j)が成り立っているとする。
    このとき、このデータの中央値m
    m = \frac{x_{k}+x_{k+1}}{2}
    で定義する。

さて、前の議論を、“最小一乗法”に変えて実行してみましょう。すると、次の定理が成り立ちます。

定理.

x_1, x_2, \ldots, x_{n} \in \mathbb{R}x_i \leq x_j (i < j)を満たしているとする。
関数L\colon \mathbb{R} \to \mathbb{R}L(m) = \sum_{i=1}^n |m-x_i| (m\in\mathbb{R})で定義する。
このとき、x_1, x_2, \ldots, x_{n}の中央値は、Lの最小値を与える。

証明の方針.

正確な証明を与える前に、証明の方針を述べます。
簡単な例として、x_1, x_2, \ldots, x_{n} \in \mathbb{R}1, 3, 6の場合を考えてみます。
このとき、中央値は3です。
fig1
L(m) = |m-1| + |m-3| + |m-6|は、各点1, 3, 6からmの距離の和だと考えることができます。
定理の主張は、この距離の和がm=3で最小になるということです。
いま、はじめm=3にあったmが、小さい距離\delta > 0 だけ増え、m=3+\deltaになったとします。
fig2
このとき、

  1. 1からmの距離は、3-1から(3+\delta)-1に変化し、\delta>0だけ増える。
  2. 3からmの距離は、3-3から(3+\delta)-3に変化し、\delta>0だけ増える。
  3. 6からmの距離は、6-3から6-(3+\delta)に変化し、\delta>0だけ減る。
    fig3
    ということで、

これらを合計したLは、\delta + \delta - \delta = \delta > 0だけ増える。
ということがわかります。
これを一般化すると、おおざっぱに言って、
数直線上でmが右に動くと、mより左側にあった点の数に比例して距離の和Lが大きくなり、mより右側にあった点の数に比例してLが小さくなる。mが左に動くと、mより左側にあった点の数に比例して距離の和Lが小さくなり、mより右側にあった点の数に比例してLが大きくなる。
ということがいえます。したがって、数直線上でmの左側にも右側にも同じ数の点がある状態が、Lが一番小さくなる状態であり、そのようなmは中央値です。
この描像に沿って、証明をします。

証明.

データの数が偶数の場合も同様なので、奇数の場合にだけ証明する。
n=2k+1とおく。いま、x_i\leq x_{k+1} (i\leq k+1),\, x_i \geq x_{k+1} (i \geq k+1)が成り立っている。
m=x_{k+1}Lの最小値を与えることを証明するためには、任意のmに対してL(m)\geq L(x_{k+1})が成立することを示せばよい。
mを任意にとり、\delta = m - x_{k+1}とおく。

  1. \delta \geq 0のとき。
    i\leq k+1に対して、|m-x_i| = |x_{k+1}+\delta-x_i| = (x_{k+1}-x_i) +\delta = |x_{k+1}-x_i|+\deltaが成り立つ。
    また、i > k+1に対して、三角不等式より|x_{k+1}-x_i| = |(x_{k+1}+\delta-x_i) +\delta| \leq |m-x_i| +\deltaが成り立つ。したがって、|m-x_i|\geq|x_{k+1}-x_i|-\deltaが成り立つ。
    以上より、L(m)=\sum_{i=1}^{k+1}|m-x_i| +\sum_{i=k+2}^{n}|m-x_i| \geq \sum_{i=1}^{k+1}\left(|x_{k+1}-x_i|+\delta\right)+\sum_{i=k+2}^{n}\left(|x_{k+1}-x_i|-\delta\right) = L(x_{k+1})+\delta\geq L(x_{k+1})となって、L(m)\geq L(x_{k+1})が成立する。
  2. \delta \leq 0のとき。
  3. の場合と同様。

以上より、定理が成立することがわかる。

まとめ

差の二乗和を最小化するのが算術平均であり、差の絶対値の和を最小化するのが中央値です。

AWSのビッグデータ活用・機械学習導入支援サービス

参考

倉田博史・星野崇宏『入門統計解析』新世社,2009年

インフラ担当者の業務負荷を軽減!AWS運用の自動化機能とは?

インフラ担当者の業務負荷軽減のためにAWSで活用すべき運用自動化機能

<AWS運用にお悩みの方必見!>
AWSにはシステム運用を自動化できるサービスが多数取り揃えられており、本資料では、これら機能の概要をわかりやすく解説します。
tmtk

データ分析と機械学習とソフトウェア開発をしています。 アルゴリズムとデータ構造が好きです。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら