0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

教師あり学習の基礎その2ー重回帰ー(備忘録)

Last updated at Posted at 2020-04-19

重回帰分析の理論

(数学的な議論が永遠と続くだけなので読まない方が幸せかも笑)

一般的な(線形)回帰モデルを考えよう。
重回帰とは、説明変数(入力変数)が複数ある場合のことをいう。

\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

が成り立つ。

スクリーンショット 2020-04-19 18.26.24.png

[発展]統計的性質

$\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}

と求められる。

これ以上続けると、難解になるのでやめておこう。。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?