はじめに
機械学習・深層学習がもてはやされる昨今ではあるが、重回帰分析は今でも実業務で使われているのを目にする。
説明変数に主効果だけでなく、高次項や交互作用項などの非線形因子を加えることで機械学習と同レベルの予測精度を期待できる。
また、説明性が高いため、実業務での顧客への説明が比較的容易というメリットがある。
正規方程式は、偏回帰係数を求めるための数学的な方程式である。
定義
説明変数:$ x $($ p $個と仮定)
目的変数:$ y $
目的変数推定値:$ \hat{y} $
偏回帰係数:$ β $($ β_0 $は切片)
\begin{align}
\hat{y} &= β_0 + β_1 x_1 + β_2 x_2 + ・・・ + β_p x_p
\end{align}
また、次のようにベクトルと行列を定義する($ n $はデータ数)。
\boldsymbol{\hat{y}}=
\begin{bmatrix}
\hat{y_1} \\
\hat{y_2} \\
\vdots \\
\hat{y_n}
\end{bmatrix}
,
\boldsymbol{X}=
\begin{bmatrix}
1 & x_{11} & x_{12} & \ldots & x_{1p} \\
1 & x_{21} & x_{22} & \ldots & x_{2p} \\
\vdots & \vdots & \vdots & \ddots & \vdots\\
1 & x_{n1} & x_{n2} & \ldots & x_{np} \\
\end{bmatrix} \\
,
\boldsymbol{β}=
\begin{bmatrix}
β_0 \\
β_1 \\
β_2 \\
\vdots \\
β_p
\end{bmatrix}
以上より重回帰モデルは以下の数式で表される。
\boldsymbol{\hat{y}} = \boldsymbol{X}\boldsymbol{β}
正規方程式導出
目的関数を$ L(β) $とし、最小二乗法を用いる。
※最小二乗法:誤差の二乗が最小となるようにパラメータ$β$を求める方法
\begin{align}
L(\boldsymbol{β}) = \displaystyle \sum_{ i = 1 }^{ n } (y_i - \hat{y_i})^2
&= (\boldsymbol{y}-\boldsymbol{X}\boldsymbol{β})^T(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{β}) \\
&= (\boldsymbol{y}^T-\boldsymbol{β}^T\boldsymbol{X}^T)(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{β}) \\
&= \boldsymbol{y}^T\boldsymbol{y} - 2\boldsymbol{β}^T\boldsymbol{X}^T\boldsymbol{y} + \boldsymbol{β}^T\boldsymbol{X}^T\boldsymbol{X}\boldsymbol{β}
\end{align} \\
ここで、$ \boldsymbol{β} $で偏微分した結果が0になる場合を考える。
-2\boldsymbol{X}^T\boldsymbol{y} + 2\boldsymbol{X}^T\boldsymbol{X}\boldsymbol{β}=0
あとは式を整理して
\begin{align}
-\boldsymbol{X}^T\boldsymbol{y} + \boldsymbol{X}^T\boldsymbol{X}\boldsymbol{β} &= 0 \\
\boldsymbol{X}^T\boldsymbol{X}\boldsymbol{β} &= \boldsymbol{X}^T\boldsymbol{y} \\
\boldsymbol{β} &= (\boldsymbol{X}^T\boldsymbol{X})^{-1}\boldsymbol{X}^T\boldsymbol{y}
\end{align}
これが正規方程式であり、各偏回帰係数を求めることができる。