単回帰について調べる機会があったので自分用にまとめます。
間違いがあるかもしれません。(特に中心化については自信がないです)
ご指摘いただければ幸いです。
単回帰の定義
以下のように、二つひと組のデータの集合が与えられているとします。
D =
\left\{
(X_n , Y_n )
\right\}_{n=1}^{N}
次に、このデータの集合$D$を以下のように単純化します。
y = wx+b
このような定式化を単回帰と呼ぶことにします。
中心化
ある一組のデータ$(X_n, Y_n)$を単回帰に当てはめます。
Y_n = wX_n+b
同様にデータ全体に対して適用し、平均をとります。
\begin{align}
\frac{1}{N} \sum_{n=1}^{N}Y_n &= \frac{1}{N}\sum_{n=1}^{N}(wX_n+b) \\
& =
w\frac{1}{N}\sum_{n=1}^{N}X_n +b
\end{align}
上式から分かるように、$X_n$の平均$\bar{X}$と、$Y_n$の平均$\bar{Y}$が0になるようにデータ全体を平行移動することで、$b=0$にすることができます。
すなわち次のようにデータを変換します。
D^{\prime}=
\left\{
(X_n -\bar{X} , Y_n-\bar{Y} )
\right\}_{n=1}^{N}
このような操作を中心化と呼ぶことにします。
以降、中心化が行われた前提で単回帰を次のように表すことにします。
{y} = w{x}
目的関数の決定
単回帰モデルの予測値$y_n$と、実際のデータ(目標値)$Y_n$の誤差の二乗を考えます。
(Y_n-y_n )^2 = (Y_n-wX_n)^2
次に、この二乗和誤差をデータ全体に対して行い和をとったものを$L$で表すことにします。
L = \sum_{n=1}^{N}
(Y_n-y_n )^2 =
\sum_{n=1}^{N}
(Y_n - wX_n )^2
この$L$を目的関数と呼ぶことにし、目的関数を最小化することを考えます。
パラメタの最適化
目的関数$L$において、$Y_n$と$X_n$は任意の値で良いはずなので、$L$は$w$のみに依存した関数と言えます。
したがって、$L$を最小化する方程式は以下となります。
\frac{\partial}{\partial w}
L = 0
では、方程式の解となるパラメタ$w$を求めます。
また、$u_n =Y_n - wX_n$と定義しておきます。
\begin{align}
0 & = \frac{\partial}{\partial w}L =
\frac{\partial}{\partial w}
\sum_{n=1}^{N}
(Y_n - wX_n)^2 \\
& =
\frac{\partial}{\partial w}
\sum_{n=1}^{N}
{u_n}^2
=
\sum_{n=1}^{N}
\frac{\partial}{\partial w}
{u_n}^2 \\
& =
\sum_{n=1}^{N}
\frac{\partial u_n}{\partial w}
\frac{\partial {u_n}^2}{\partial u_n} \\
& =
\sum_{n=1}^{N}
(-X_n\cdot 2u_n)
=
-2 \sum_{n=1}^{N}
X_nu_n \\
& =
-2 \sum_{n=1}^{N}
X_n(Y_n - wX_n) \\
& =
-2\sum_{n=1}^{N}
X_nY_n+2
w\sum_{n=1}^{N}{X_n}^2
\end{align}
以上よりパラメタ$w$は以下で決定されます。
w = \frac{\sum_{n=1}^{N}X_nY_n}{\sum_{n=1}^{N} {X_n}^2}
まとめ
1.データが次で与えられる。
D =
\left\{
(X_n , Y_n )
\right\}_{n=1}^{N}
2.中心化を行う。
D^{\prime}=
\left\{
(X_n -\bar{X} , Y_n-\bar{Y} )
\right\}_{n=1}^{N}
3.ウェイト$w$を求める。
w = \frac{\sum_{n=1}^{N}X_nY_n}{\sum_{n=1}^{N} {X_n}^2}
4.単回帰が求まる。
{y} = w{x}
参考資料
・中心化を行わずにパラメタを最適化する
https://ai-trend.jp/basic-study/regression/simple_linear_reg/