最小二乗法 - 2023/5/21
最小二乗法
回帰分析などにおいて、与えられているデータに最も適合するような直線や面を求めるための方法。
証明の過程を示す。
単回帰分析を前提とする。
証明
$ \begin{aligned} J = \sum_{i=1}^n e_i^2 =& \sum_{i=1}^n {y_i - (Ax_i + B)}^2 \\ =& \sum_{i=1}^n (y_i^2 - 2y_i(Ax_i + B) + A^2 x_i^2 + 2Ax_iB + B^2) \end{aligned}
$ Jは誤差の二乗の合計であり、これを最小にする$ A, Bを求めることが目的となる。
そのためには、$ Jを $ A, Bのそれぞれで偏微分すれば良い。
$ \left\{ \begin{aligned} &\frac{\partial J}{\partial A} = \sum_{i=1}^n (-2y_ix_i + 2Ax_i^2 + 2x_iB) \text{(1)} \\ &\frac{\partial J}{\partial B} = \sum_{i=1}^n (-2y_i + 2Ax_i^2 + 2B) \text{(2)} \end{aligned} \right.
(2)式を2で割って簡単化。
$ -\sum_{i=1}^2 y_i + \sum_{i=1}^2 Ax_i + Bn = 0
Bについて変形する。
$ B = \frac{1}{n} \sum_{i=1}^2 y_i - \frac{A}{n} \sum_{i=1}^n x_i
$ \frac{1}{n} \sum_{i=1}^n y_i は $ y についての平均であるため、
$ \therefore B = \bar{y} - A\bar{x} \text{(3)}
(1)式を2で割って簡単化。
$ -\sum_{i=1}^n x_iy_i + A \sum_{i=1}^n x_i^2 + B\sum_{i=1}^n x_i = 0
(3)式を代入。
$ -\sum_{i=1}^n x_iy_i + A\sum_{i=1}^n x_i^2 + (\bar{y} - A\bar{x})\sum_{i=1}^n x_i = 0
$ -\sum_{i=1}^n x_iy_i + A\sum_{i=1}^n x_i^2 + \bar{y}\sum_{i=1}^n x_i - A\bar{x}\sum_{i=1}^n x_i = 0
$ -\sum_{i=1}^n x_iy_i + \bar{y}\sum_{i=1}^n x_i + A \left( \sum_{i=1}^n x_i^2 - \bar{x} \sum_{i=1}^n x_i \right) = 0
$ \frac{1}{n}\sum_{i=1}^n x_i = \bar{x}より、$ \sum_{i=1}^n x_i = n\bar{x}であるため、
$ - \sum_{i=1}^n x_iy_i + n\bar{y}\bar{x} + A \left( \sum_{i=1}^n x_i^2 - n\bar{x}^2 \right) = 0
$ nでくくる。
$ n \left( \frac{1}{n} \sum_{i=1}^n x_iy_i - \bar{x}\bar{y} \right) - An \left( \frac{1}{n} \sum_{i=1}^n x_i^2 - \bar{x}^2 \right) = 0
$ An \left( \frac{1}{n} \sum_{i=1}^n x_i^2 - \bar{x}^2 \right) = n \left( \frac{1}{n} \sum_{i=1}^n x_iy_i - \bar{x}\bar{y} \right)
$ A = \frac{ \frac{1}{n} \sum_{i=1}^n x_iy_i - \bar{x}\bar{y} }{ \frac{1}{n} \sum_{i=1}^n x_i^2 - \bar{x}^2 }
分母から、部分的に変形する。
$ \begin{aligned} \frac{ \sum_{i=1}^n x_i^2 }{n} - \bar{x}^2 &= \frac{ \sum_{i=1}^n x_i^2 }{n} - 2\bar{x}^2 + \bar{x}^2 \\ &= \frac{ \sum_{i=1}^n x_i^2 }{n} - 2\bar{x} \sum_{i=1}^n x_i + n\bar{x}^2 \\ &= \frac{1}{n} \left( \sum_{i=1}^n x_i^2 - 2\bar{x} \sum_{i=1}^n x_i + n\bar{x}^2 \right) \\ &= \frac{1}{n} \sum_{i=1}^n \left( x_i^2 - 2\bar{x} x_i + \bar{x}^2 \right) \\ &= \frac{1}{n} \sum_{i=1}^n (x_i - \bar{x} )^2 \end{aligned}
分子を変形する。
$ \begin{aligned} \frac{ \sum_{i=1}^n x_iy_i }{n} - \bar{x}\bar{y} &= \frac{ \sum_{i=1}^n x_iy_i }{n} - 2\bar{x}\bar{y} + \bar{x}\bar{y} \\ &= \frac{1}{n} \left( \sum_{i=1}^n x_iy_i - 2n\bar{x}\bar{y} + n\bar{x}\bar{y} \right) \\ &= \frac{1}{n} \left( \sum_{i=1}^n x_iy_i - n\bar{x}\bar{y} - n\bar{x}\bar{y} + n\bar{x}\bar{y} \right) \\ &= \frac{1}{n} \left( \sum_{i=1}^n x_iy_i - n \frac{\sum_{i=1}^n x_i}{n}\bar{y} -n \frac{\sum_{i=1}^n y_i}{n}\bar{x} + n\bar{x}\bar{y} \right) \\ &= \frac{1}{n} \left( \sum_{i=1}^n x_iy_i - \sum_{i=1}^n x_i\bar{y} - \sum_{i=1}^n y_i\bar{x} + n\bar{x}\bar{y} \right) \\ &= \frac{1}{n} \sum_{i=1}^n \left( x_iy_i - \bar{y}xi - \bar{x}y_i + \bar{x}\bar{y} \right) \\ &= \frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y}) \end{aligned}
元に戻す。
$ \therefore A = \frac{\frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})(y_i - \bar{y})}{\frac{1}{n} \sum_{i=1}^n (x_i - \bar{x}^2)} \text{(4)}
ここまでで、変形は終了。
(4)式はさらに以下のようにまとめることも可能。
$ A = \frac{\sigma_{xy}}{\sigma_x^2}
$ \sigma_{xy}は$ x, yの共分散で、$ \sigma_x^2は$ xの分散である。
関連性の細かい部分については別に調査予定。
多項式回帰での例 - 2023/8/12追記
多項式回帰を前提として、最小二乗法で係数を推定してみる。
以下の多項式を想定する。$ wは各項の重みであり、これを学習させて真の出力に近づける。
$ \hat{y} = w_0 + w_1 x + w_2 x^2 + \dots + w_M x^M = \bm{w}^T \bm{x} \tag{A}
ここで、$ \bm{w} = \begin{bmatrix} w_0 & w_1 & w_2 & \dots & w_M \end{bmatrix} , $ \bm{x} = \begin{bmatrix} x^0 & x^1 & x^2 & \dots & x^M \end{bmatrix} である。
次に、パラメータ$ \bm{w}を推定するための評価関数を考える。
観測値 $ yと式(A)から想定される出力$ \hat{y}との誤差の二乗の総和を最小化するため、以下の式を想定する。
$ \begin{aligned} E(\bm{w}) &= \frac{1}{2} \sum_{n=1}^N (\hat{y_n} - y_n)^2 \\ &= \frac{1}{2} \sum_{n=1}^N (\bm{x}_n^T \bm{w} - y_n)^2 \\ &= \frac{1}{2} \sum_{n=1}^N \| \bm{X} \bm{w} - \bm{y} \|^2 \end{aligned}
これが最小となる場合、$ wについて偏微分して$ 0になると考えればよい。
($ wについての項は必ず正であり、下に凸な関数であるから)
$ \frac{\partial E(\bm{w})}{\partial \bm{w}} = 0