cytoのメモ帳

気づいたこと,感じたことを徒然と

線形回帰モデル 1. 単回帰

ある入力 xが与えられたときに,それに対応する yを予測することを回帰という.

単回帰

一次元の実数 xから実数 yの回帰を考える. 回帰モデルとして基本的なものとして単回帰があり,次のような一次式の形で表される.


\hat{y} = a + bx

 \hat{y}は入力 xから予測された値を表す. この式の係数 a,  bを求めるのが目標である.
 n番目の入力 x x_n,予測値を \hat{y_n}とすると, 1~  n番目の入力に対して,


\hat{y_1} = a + bx_1 \\
\hat{y_2} = a + bx_2 \\
\vdots \\
\hat{y_n} = a + bx_n

となる. 実際の yの値と \hat{y_n}の誤差は


y - \hat{y_n} = y - (a + bx_n)

となる.
この誤差の総和が最小になるとき, xから yをうまく回帰出来ているとみなせる.
ただし,このまま総和をとると,正の誤差と負の誤差が互いに打ち消し合ってしまい正しく評価できない.
よって,誤差の2乗の総和 Eの最小値を考える.


\begin{aligned}
E = \sum_{n=1}^{N} (y_n - \hat{y_n})^2 = \sum_{n=1}^{N} (y_n - (a + bx_n))^2
\end{aligned}

となる.
ここで, Eの最小値を求めるためには,最小二乗法を用いる.  Eが最小になるのは, E a,  bについて微分したものを0と置いたときである.


\begin{aligned}
E &= \sum_{n=1}^{N} (y_n - (a + bx_n))^2 = \sum_{n=1}^{N} (y_n^2 + a^2 + b^2x_n^2 - 2ay_n + 2abx_n - 2bx_ny_n ) \\
&\ = \sum_{n=1}^{N} (a^2 -2ay_n + 2abx_n - 2bx_ny_n + b^2x_n^2 + y_n^2)\\
\end{aligned}

であるから, a,  bについての偏微分  = 0を計算すると,


\begin{aligned}
\frac{\partial E}{\partial a} &=  \sum_{n=1}^{N} (2a + 2x_nb - 2y_n) = 2 \sum_{n=1}^{N} (a + x_nb - y_n) = 0 \\
\frac{\partial E}{\partial b} &=  \sum_{n=1}^{N} (2x_na - 2x_ny_n + 2x_n^2b ) = 2 \sum_{n=1}^{N} (x_n^2b + x_na - x_ny_n)  = 0 \\
\end{aligned}

となる. \sum_{n=1}^{N}a = aNに注意すると,


\begin{aligned}
&Na + (\sum_{n=1}^{N} x_n)b = \sum_{n=1}^{N} y_n \\
&(\sum_{n=1}^{N} x_n)a + (\sum_{n=1}^{N} x_n^2)b = \sum_{n=1}^{N} x_ny_n \\
\end{aligned}

となる.
これらは a,  bについての連立方程式であるから,解くことができる.
行列表示すると,


\begin{aligned}
\begin{pmatrix}
N & \sum_{n=1}^{N} x_n \\
\sum_{n=1}^{N} x_n & \sum_{n=1}^{N} x_n^2 \\
\end{pmatrix}
\begin{pmatrix}
a \\
b\\
\end{pmatrix}
=
\begin{pmatrix}
\sum_{n=1}^{N} y_n \\
\sum_{n=1}^{N} x_ny_n\\
\end{pmatrix}
\end{aligned}

となる.
左から逆行列をかけることで, a,  bは,


\begin{aligned}
\begin{pmatrix}
a \\
b\\
\end{pmatrix}
& =
\begin{pmatrix}
N & \sum_{n=1}^{N} x_n \\
\sum_{n=1}^{N} x_n & \sum_{n=1}^{N} x_n^2 \\
\end{pmatrix}^\mathrm{-1} 
\begin{pmatrix}
\sum_{n=1}^{N} y_n \\
\sum_{n=1}^{N} x_ny_n\\
\end{pmatrix} \\
&\ =
\frac{1}{N \sum_{n=1}^{N} x_n^2  - (\sum_{n=1}^{N} x_n)^2} 
\begin{pmatrix}
 \sum_{n=1}^{N} x_n^2  & - \sum_{n=1}^{N} x_n \\
- \sum_{n=1}^{N} x_n & N \\
\end{pmatrix}
\begin{pmatrix}
\sum_{n=1}^{N} y_n \\
\sum_{n=1}^{N} x_ny_n\\
\end{pmatrix}\\ 
&\ =
\frac{1}{N \sum_{n=1}^{N} x_n^2  - (\sum_{n=1}^{N} x_n)^2} 
\begin{pmatrix}
 \sum_{n=1}^{N} x_n^2 \sum_{n=1}^{N} y_n -  \sum_{n=1}^{N} x_n \sum_{n=1}^{N} x_ny_n
\\
- \sum_{n=1}^{N} x_n \sum_{n=1}^{N} y_n + N\sum_{n=1}^{N} x_ny_n\\
\end{pmatrix}
\end{aligned}

と求まる.