重回帰分析の理論
(数学的な議論が永遠と続くだけなので読まない方が幸せかも笑)
一般的な(線形)回帰モデルを考えよう。
重回帰とは、説明変数(入力変数)が複数ある場合のことをいう。
\begin{array}{c}
y_1 = \beta_1x_{11} + \cdots + \beta_d x_{1d} + \varepsilon_1\\
y_2 = \beta_1x_{21} + \cdots + \beta_d x_{2d} + \varepsilon_2\\
\cdots\\
y_n = \beta_1x_{n1} + \cdots + \beta_d x_{nd} + \varepsilon_n\\
\end{array}
ここで、目的変数は行列表示で
$$
X=(x_1, x_2, \cdots , x_n)^T
$$
とし(注:それぞれの成分はベクトルです)、目的変数(ターゲット)を
$$
y=(y_1, y_2, \cdots , y_n)^T
$$
とする(注:それぞれの成分はスカラーです)。ここで、ベクトルはいちいち太字で書かないことにする(面倒臭いだけです、すみません)。
また、重みは
\beta = (\beta_1 , \beta_2 , \cdots , \beta_d)^T
バイアスは
$$
\varepsilon = (\varepsilon_1, \varepsilon_2, \cdots , \varepsilon_n)^T
$$
である。
このとき、
$$
y_i = \beta^T x_i
$$
であるから、上の式は簡単に
y = X\beta + \varepsilon
と表示できる。本によっては、文字が少し違うこともありますが、統計の本だとこの記法がほぼ一般的のようです。
損失関数を残差平方和としよう。
L(\beta )=||\varepsilon ||_2^2 = ||y-X\beta ||_2^2
ここで、$||\cdot ||_2 $ はユークリッドノルム($l_2$ノルム)を表す。
この損失関数を最小化したい。転置の性質を使えば
\begin{eqnarray}
L(\beta)&=&(y-X\beta)^T(y-X\beta)\\
&=&(y^T-\beta^TX^T)(y-X\beta)\\
&=&y^Ty -y^TX\beta -\beta^TX^Ty + \beta^TX^TX\beta
\end{eqnarray}
最小値を求めるために、$\beta$に関して偏微分か平方完成を用いる。
今回は偏微分で求めてみよう。
まず、ベクトルに関する偏微分について復習する。
$$
\frac{\partial}{\partial \beta}(\beta^Tx_i) = \frac{\partial}{\partial\beta}(x_i^T\beta) = x_i
$$
が成り立つ(注:$\beta, x_i$はベクトルです)。実際、
$$
\frac{\partial}{\partial\beta_j}(\beta_1x_{i1}+\beta_2x_{i2}+\cdots \beta_dx_{id}+\varepsilon_i)=x_{ij}
$$
であるからである。よって、
\begin{eqnarray}
\frac{\partial L(\beta)}{\partial\beta}&=&-2X^Ty+2X^TX\beta
\end{eqnarray}
であるから、
\begin{eqnarray}
&&\frac{\partial L(\beta)}{\partial\beta}=0\\
&\Leftrightarrow&\beta = (X^TX)^{-1}X^Ty
\end{eqnarray}
この最小値を与える$\beta$を$\widehat{\beta}$とかくと
\begin{eqnarray}
L(\widehat{\beta})&=&y^Ty-2y^TX\widehat{\beta}+\widehat{\beta}^TX^TX\widehat{\beta}\\
&=& y^Ty-2y^TX(X^TX)^{-1}X^Ty+((X^TX)^{-1}X^Ty)^TX^TX(X^TX)^{-1}X^Ty\\
&=&y^Ty-2y^TX(X^TX)^{-1}X^Ty+y^TX((X^TX)^{-1})^{T}X^Ty\\
&=& y^T (I-X(X^TX)^{-1}X^T) y\\
\end{eqnarray}
と求められます。ここで、$X^TX$(これは対称行列であることに注意する)は逆行列を持つ、すなわち$\mathrm{rank}X=d$と仮定しています。
$X^TX$が正則でない例としては、
- $n<d$、すなわち説明変数の数が多い場合
- 冗長な説明変数がある場合
です。対処法としては、サンプル数を増やす(目的変数を増やす)や、説明変数の数を減らす、(L1またはL2)正則化する、一般化逆行列を用いる、という考え方がある。暇があればこれらも解説したい。
ちなみに、$P=X(X^TX)^{-1}X^T$とおき、予測値を
$$
\widehat{y}=X\widehat{\beta}
$$
とおくと、
$$
y-\widehat{y} = (I-P)y
$$
と書け、$P,\ I-P$は射影行列となっている。実際、
$$
P^2=X(X^TX)^{-1}X^TX(X^TX)^{-1}X^T=X(X^TX)^{-1}X^T=P
$$
より、
$$
(I-P)^2=I-2P+P=I-P
$$
であるからである。
残差$e$を
$$
e=y-\widehat{y}
$$
とおくと、損失関数の$\beta$に関する偏微分が0という条件、すなわち$X^Ty=X^TX\beta$(正規方程式という)より
$$
X^Te = 0
$$
であるから、説明変数は残差と直交する。特に
||y||_2^2=||e||_2^2+||\widehat{y}||_2^2
が成り立つ。
[発展]統計的性質
$\varepsilon\sim N(0,\sigma^2I)$とし、それぞれ独立であるとする。
\begin{eqnarray}
E[\widehat{\beta}]=E[(X^TX)^{-1}X^Ty]&=&(X^TX)^{-1}X^TE[y]\\
&=&(X^TX)^{-1}X^T(X\beta)\\
&=&(X^TX)^{-1}(X^TX)\beta\\
&=& \beta
\end{eqnarray}
より、$\widehat{\beta}$は$\beta$の不変推定量である。また、分散(分散共分散行列)は
$$
\widehat{\beta}-E[\widehat{\beta}] = (X^TX)^{-1}X^Ty-\beta=(X^TX)^{-1}X^T(X\beta+\varepsilon)-\beta=(X^TX)^{-1}X^T\varepsilon
$$
より
\begin{eqnarray}
V[\widehat{\beta}]&=&E[(\widehat{\beta}-E[\widehat{\beta}])(\widehat{\beta}-E[\widehat{\beta}])^T]\\
&=&E[(X^TX)^{-1}X^T\varepsilon ((X^TX)^{-1}X^T\varepsilon)^T]\\
&=&(X^TX)^{-1}X^T E[\varepsilon\varepsilon^T]X(X^TX)^{-1}\\
&=&(X^TX)^{-1}X^T(\sigma^2I)X(X^TX)^{-1}\\
&=&\sigma^2(X^TX)^{-1}
\end{eqnarray}
と求められる。
これ以上続けると、難解になるのでやめておこう。。
参考文献
- 梅津佑太、西井龍映、上田勇祐『スパース回帰分析とパターン認識』講談社、2020年
- 加藤公一『機械学習のエッセンス』SB Creative、2019年
- 知識のサラダボウル https://omedstu.jimdofree.com/2018/04/21/重回帰分析①/