最小二乗法とは?平均との関係を解説
こんにちは。データサイエンスチーム tmtkです。
この記事では、最小二乗法と平均の関係について説明します。最小二乗法は標準的には回帰分析で用いられますが、実は平均も最小二乗法で捉えることができます。
また、最小二乗法と平均の間と同じ関係が、“最小一乗法”と中央値の間にもあることを説明します。
最小二乗法と回帰
最小二乗法とは、回帰分析のパラメータとして、残差の二乗和を最小にするパラメータを選択する手法です。
線形回帰を例にとって具体的に説明します。線形回帰とは、
1. データ[latex](x_1, y_1) , (x_2, y_2), \ldots, (x_n, y_n) \in \mathbb{R}^d \times \mathbb{R}[/latex]が与えられている。
2. 変数[latex]x, y[/latex]の関係が[latex] y = \beta_1x + \beta_0[/latex]で近似できると仮定する。
3. [latex]y[/latex]の残差[latex] y_i – (\beta_1x_i + \beta_0)[/latex] の二乗和[latex]\sum_{i=1}^n \left(y_i – \left(\beta_1x_1 + \beta_0\right)\right)^2[/latex]を最小にする[latex]\beta_1, \beta_0[/latex]を計算する。(これが 最小二乗法 )
4. 3. で得られた[latex]\beta_1, \beta_0[/latex]を用いて、データ列に[latex]y=\beta_1x + \beta_0[/latex]の関係があると見積もる。
という手続きです。
このような、回帰の手続きのうち、残差の二乗和を最小化する手順のことを、最小二乗法といいます。
AWSのビッグデータ活用・機械学習導入支援サービス
最小二乗法と算術平均
データ[latex]x_1, x_2, \ldots, x_n \in \mathbb{R} [/latex]が与えられているとします。
いま、距離の二乗和関数[latex]L(\mu) := \sum_{i=1}^n (x_i – \mu) ^2[/latex]を最小にする[latex]\mu[/latex]を求める問題を考えてみます。これは、二乗和を最小にする問題なので、ある意味で“最小二乗法”だと考えることができます。
[latex]L(\mu)[/latex]を計算しましょう。
[latex]\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}[/latex]
したがって、二次関数の一般論から、[latex]L[/latex]を最小にする[latex]\mu[/latex]は[latex]\mu = \frac{\sum_{i=1}^nx_i}{n}[/latex]であることがわかります。これは[latex]x_1, x_2, \ldots, x_n \in \mathbb{R}[/latex]の算術平均です。
したがって、算術平均は“最小二乗法”で計算できると考えることができます。これで、最小二乗法と算術平均の意外な関係が明らかになりました。
【事例集】AIや機械学習によるビッグデータ活用をしたい方にオススメ!

「AIによるキャスト評価システムの構築」「データ分析基盤の運用費用9割削減」など、AWSを利用したAI、機械学習の成功事例をご紹介します。
“最小一乗法”と中央値
実は、最小二乗法と算術平均の間の関係が、“最小一乗法”と中央値の間にもあてはまることがわかります。以下で、これを説明します。なお、残差のL1ノルムの和の最小化をする方法はよく最小絶対値法などと呼ばれていますが、ここでは最小二乗法との対比を強調して“最小一乗法”と呼ぶことにします。
まず、中央値の定義を復習します。
定義. 中央値
- データの数が奇数個の場合。
データ[latex]x_1, x_2, \ldots, x_{2k+1} \in \mathbb{R}[/latex]が与えられているとする。いま、データは昇順にならんでいるとする。すなわち、[latex]x_i \leq x_j (i < j)[/latex]が成り立っているとする。
このとき、このデータの中央値[latex]m[/latex]を
[latex]m = x_{k+1}[/latex]
で定義する。 - データの数が偶数個の場合。
データ[latex]x_1, x_2, \ldots, x_{2k} \in \mathbb{R}[/latex]が与えられているとする。いま、データは昇順にならんでいるとする。すなわち、[latex]x_i \leq x_j (i < j)[/latex]が成り立っているとする。
このとき、このデータの中央値[latex]m[/latex]を
[latex]m = \frac{x_{k}+x_{k+1}}{2}[/latex]
で定義する。
さて、前の議論を、“最小一乗法”に変えて実行してみましょう。すると、次の定理が成り立ちます。
定理.
[latex]x_1, x_2, \ldots, x_{n} \in \mathbb{R}[/latex]が[latex]x_i \leq x_j (i < j)[/latex]を満たしているとする。
関数[latex]L\colon \mathbb{R} \to \mathbb{R}[/latex]を[latex]L(m) = \sum_{i=1}^n |m-x_i| (m\in\mathbb{R})[/latex]で定義する。
このとき、[latex]x_1, x_2, \ldots, x_{n}[/latex]の中央値は、[latex]L[/latex]の最小値を与える。
証明の方針.
正確な証明を与える前に、証明の方針を述べます。
簡単な例として、[latex]x_1, x_2, \ldots, x_{n} \in \mathbb{R}[/latex]が[latex]1, 3, 6[/latex]の場合を考えてみます。
このとき、中央値は3です。
[latex]L(m) = |m-1| + |m-3| + |m-6|[/latex]は、各点[latex]1, 3, 6[/latex]から[latex]m[/latex]の距離の和だと考えることができます。
定理の主張は、この距離の和が[latex]m=3[/latex]で最小になるということです。
いま、はじめ[latex]m=3[/latex]にあった[latex]m[/latex]が、小さい距離[latex]\delta > 0 [/latex]だけ増え、[latex]m=3+\delta[/latex]になったとします。
このとき、
- [latex]1[/latex]から[latex]m[/latex]の距離は、[latex]3-1[/latex]から[latex](3+\delta)-1[/latex]に変化し、[latex]\delta>0[/latex]だけ増える。
- [latex]3[/latex]から[latex]m[/latex]の距離は、[latex]3-3[/latex]から[latex](3+\delta)-3[/latex]に変化し、[latex]\delta>0[/latex]だけ増える。
- [latex]6[/latex]から[latex]m[/latex]の距離は、[latex]6-3[/latex]から[latex]6-(3+\delta)[/latex]に変化し、[latex]\delta>0[/latex]だけ減る。
ということで、
これらを合計した[latex]L[/latex]は、[latex]\delta + \delta – \delta = \delta > 0[/latex]だけ増える。
ということがわかります。
これを一般化すると、おおざっぱに言って、
数直線上で[latex]m[/latex]が右に動くと、[latex]m[/latex]より左側にあった点の数に比例して距離の和[latex]L[/latex]が大きくなり、[latex]m[/latex]より右側にあった点の数に比例して[latex]L[/latex]が小さくなる。[latex]m[/latex]が左に動くと、[latex]m[/latex]より左側にあった点の数に比例して距離の和[latex]L[/latex]が小さくなり、[latex]m[/latex]より右側にあった点の数に比例して[latex]L[/latex]が大きくなる。
ということがいえます。したがって、数直線上で[latex]m[/latex]の左側にも右側にも同じ数の点がある状態が、[latex]L[/latex]が一番小さくなる状態であり、そのような[latex]m[/latex]は中央値です。
この描像に沿って、証明をします。
証明.
データの数が偶数の場合も同様なので、奇数の場合にだけ証明する。
[latex]n=2k+1[/latex]とおく。いま、[latex]x_i\leq x_{k+1} (i\leq k+1),\, x_i \geq x_{k+1} (i \geq k+1)[/latex]が成り立っている。
[latex]m=x_{k+1}[/latex]が[latex]L[/latex]の最小値を与えることを証明するためには、任意の[latex]m[/latex]に対して[latex]L(m)\geq L(x_{k+1})[/latex]が成立することを示せばよい。
[latex]m[/latex]を任意にとり、[latex]\delta = m – x_{k+1}[/latex]とおく。
- [latex]\delta \geq 0[/latex]のとき。
[latex]i\leq k+1[/latex]に対して、[latex]|m-x_i| = |x_{k+1}+\delta-x_i| = (x_{k+1}-x_i) +\delta = |x_{k+1}-x_i|+\delta[/latex]が成り立つ。
また、[latex]i > k+1[/latex]に対して、三角不等式より[latex]|x_{k+1}-x_i| = |(x_{k+1}+\delta-x_i) +\delta| \leq |m-x_i| +\delta[/latex]が成り立つ。したがって、[latex]|m-x_i|\geq|x_{k+1}-x_i|-\delta[/latex]が成り立つ。
以上より、[latex]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})[/latex]となって、[latex]L(m)\geq L(x_{k+1})[/latex]が成立する。 - [latex]\delta \leq 0[/latex]のとき。
- の場合と同様。
以上より、定理が成立することがわかる。
まとめ
差の二乗和を最小化するのが算術平均であり、差の絶対値の和を最小化するのが中央値です。
参考
倉田博史・星野崇宏『入門統計解析』新世社,2009年
インフラ担当者の業務負荷を軽減!AWS運用の自動化機能とは?

AWSにはシステム運用を自動化できるサービスが多数取り揃えられており、本資料では、これら機能の概要をわかりやすく解説します。
テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!
Follow @twitterデータ分析と機械学習とソフトウェア開発をしています。 アルゴリズムとデータ構造が好きです。
Recommends
こちらもおすすめ
-
目は口ほどに物を言う。「アイトラッキングの原理とアウトプット例」
2016.6.10
-
画像分類の機械学習モデルを作成する(3)転移学習で精度100%
2018.5.9
-
WEBサービス ブートキャンプ(俺)【始動編】
2015.12.5
-
Rで実践!欠損データ分析入門【2】
2017.12.20
-
Rで実践!欠損データ分析入門【1】
2017.12.8
Special Topics
注目記事はこちら

データ分析入門
これから始めるBigQuery基礎知識
2024.02.28

AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16