🔣

最小二乗法について丁寧に説明してみる

2023/05/05に公開

✅目的

  • 数学ダメダメの自分が最小二乗法を学んだのでまとめておこうと思います。
  • 詳細を忘れたときに見返せるようメモします。
  • 可能な限り平易に説明することを目指します。私のように完全独学で勉強している人の助けになればうれしいです。
  • 最大限注意をして、この記事を作成していますが、誤りがありましたらご指摘いただけると幸いです。

最小二乗法(さいしょうじじょうほう)とは

  • 最小二乗法は誤差の二乗和を最小にすることで、数学的に正しい回帰直線を求める手法です。
  • 1次関数の回帰直線がなぜ共分散と分散で近似できるのかは最小二乗法を計算することで説明することができます。

計算してみる

  • 各点y_iから描画したい回帰直線のyとの差(残差)はy_i - (ax_i + b)となります。

  • 各点y_i描画したい回帰直線の上や下にプロットされていますので残差は+の値だったり-の値だったりします。

  • そのため、二乗しすべての値を+にします。そして各残差の総和を求めたいため\sumを付けます。

ε = \sum_{i=1}^{n}(y_i - (ax_i + b))^2 = \sum_{i=1}^{n}(y_i - ax_i - b)^2

残差を最小にしたいため偏微分します。偏微分が何かについては以下でまとめています。
https://zenn.dev/omizunomitaro/articles/b28c05e6cef84a

合成関数の微分公式

f(g(x))'=f'(g(x))g'(x)

より

\frac{∂ε}{∂a}=-2x_i\sum_{i=1}^{n}(y_i-ax_i-b)\\

残差を最小の状態の値を導き出したいため=0とします。

-2x_i\sum_{i=1}^{n}(y_i-ax_i-b) = 0\\ a\sum_{i=1}^{n}x_i^2 + b\sum_{i=1}^{n}x_i=\sum_{i=1}^{n}x_iy_i ・・・(1)
\frac{∂ε}{∂b}=-2\sum_{i=1}^{n}(y_i-ax_i-b)\\ -2\sum_{i=1}^{n}(y_i-ax_i-b)=0\\ a\sum_{i=1}^{n}x_i + b\sum_{i=1}^{n} = \sum_{i=1}^{n}y_i ・・・(2)

aおよびbをそれぞれ偏微分すると以下の式が出ました。
この二つの式を連立方程式を用いて解を求めます。

a\sum_{i=1}^{n}x_i^2 + b\sum_{i=1}^{n}x_i=\sum_{i=1}^{n}x_{i}y_{i}・・・(1)
a\sum_{i=1}^{n}x_i + b\sum_{i=1}^{n}1=\sum_{i=1}^{n}y_{i}・・・(2)

まず、bから求めます。
以下、公式より式(2)を変形します。

a\sum_{i=1}^{n}=an
a\sum_{i=1}^{n}x_i + bn = \sum_{i=1}^{n}y_i\\ bn = \sum_{i=1}^{n}y_i - a\sum_{i=1}^{n}x_i\\ b = \frac{1}{n}\sum_{i=1}^{n}y_i - a\frac{1}{n}\sum_{i=1}^{n}x_i\\

以下、公式より式を変形します。

\frac{1}{n}\sum_{i=1}^{n}x_i = \bar{x}
b = \bar{y} - a\bar{x} ・・・(3)

上記より切片bはyの平均から傾きaとxの平均をかけた値を引いたものから求められることがわかります。

続いてaを求めるため式(1)式(3)を代入します。

a\sum_{i=1}^{n}x_i^2 + \sum_{i=1}^{n}x_i(\bar{y} - a\bar{x}) = \sum_{i=1}^{n}x_iy_i\\ a\sum_{i=1}^{n}x_i^2 + \sum_{i=1}^{n}x_i\bar{y} - a\sum_{i=1}^{n}\bar{x} = \sum_{i=1}^{n}x_iy_i\\

aでくくってa=の形にします。

a(\sum_{i=1}^{n}x_i^2 - \bar{x}\sum_{i=1}^{n}x_i) + \bar{y}\sum_{i=1}^{n}x_i = \sum_{i=1}^{n}x_iy_i\\ a=\frac{\sum_{i=1}^{n}x_iy_i - \bar{y}\sum_{i=1}^{n}x_i}{\sum_{i=1}^{n}x_i^2 - \bar{x}\sum_{i=1}^{n}x_i}\\ a=\frac{\sum_{i=1}^{n}x_iy_i - \bar{y}\sum_{i=1}^{n}x_i}{\sum_{i=1}^{n}x_i^2 - \bar{x}\sum_{i=1}^{n}x_i}

平均\bar{x} = \frac{1}{n}\sum_{i=1}^{n}x_iを変形すると\sum_{i=1}^{n}x_i= \bar{x}nとなります。
そのため、以下のように式を置き換えます。

a=\frac{\sum_{i=1}^{n}x_iy_i - \bar{y}\bar{x}n}{\sum_{i=1}^{n}x_i^2 - \bar{x}\bar{x}n}

分母と分子に\frac{1}{n}をかけます。

a=\frac{\frac{1}{n}\sum_{i=1}^{n}x_iy_i - \bar{yx}}{\frac{1}{n}\sum_{i=1}^{n}x_i^2 - \bar{x}^2}\\ a=\frac{\frac{1}{n}\sum_{i=1}^{n}x_iy_i - \bar{yx}}{\frac{1}{n}\sum_{i=1}^{n}(x_i - \bar{x})^2} = \frac{S_{xy}}{Sx^2}

上記の式から\frac{Sxy}{Sx^2}から回帰直線が近似できることがわかります。

Discussion