統計検定準1級の過去問をみていると、論述問題で2015,2016年に出ており、自分の理解の確認もかねて回帰分析について簡単に纏めなおした。
今回は正規方程式にフォーカスしている。
前半→補足→後半という構成にした。
自分が線形代数があまり得意でなかったために、多変量版の正規方程式を理解するには少々手間取った。
特に行列の性質を暗黙のうちに用いているが気づかなくて理解に苦しんだ点を細かく細くするために間に補足を設けたので行列アレルギーでも読めるような配慮をしてみた。
その代わり、回帰係数を求める過程での説明などは至らないところが多いが、巷にあふれる統計の本に載っていることばかりなので目をつぶってほしい。
- 前半
- 補足(ベクトルの微分)
- $$\frac{\partial\boldsymbol{y’}\boldsymbol{\hat{\beta}}}{\partial\boldsymbol{\hat{\beta}}}=\frac{\partial\boldsymbol{\hat{\beta’}}\boldsymbol{y}}{\partial\boldsymbol{\hat{\beta}}}$$
- $$\frac{\partial\boldsymbol{\hat{\beta}’}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}}{\partial\boldsymbol{\hat{\beta}}}=2(\boldsymbol{X’}\boldsymbol{X})\boldsymbol{\hat{\beta}}$$
- 後半
- 推定値の性質
- コメント
- 参考文献
前半
$$\boldsymbol{y}=\left( \begin{array}{ccc} y_1 \\ y_2 \\ \vdots \\y_n \end{array} \right),\boldsymbol{X}=\left(\begin{array}{ccc}1&x_{11}&\ldots&x_{1p}\\1&x_{22}&\ldots&x_{2p}\\\vdots &\vdots &\ddots &\vdots \\1&x_{n1}&\ldots& x_{np}\\\end{array} \right),\boldsymbol{\beta}=\left( \begin{array}{ccc} \beta_0 \\ \beta_1\\ \vdots \\\beta_n \end{array} \right),\boldsymbol{\epsilon}=\left( \begin{array}{ccc} \epsilon_1 \\ \epsilon_2\\ \vdots \\\epsilon_n \end{array} \right)$$
$$また、残差を\boldsymbol{e}=\boldsymbol{y}-\boldsymbol{\hat{y}}=\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\hat{\beta}}とすると、$$
$$切片及び回帰係数ベクトルの\boldsymbol{\beta}の推定量を求めるには\|\boldsymbol{e}\|を最小にすればよいので、$$
$$\boldsymbol{e’}\boldsymbol{e}=(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\hat{\beta}})'(\boldsymbol{y}-\boldsymbol{X}\boldsymbol{\hat{\beta}})$$
$$\Leftrightarrow \boldsymbol{y’}\boldsymbol{y}-\boldsymbol{y’}\boldsymbol{X}\boldsymbol{\hat{\beta}}-\boldsymbol{\hat{\beta’}}\boldsymbol{X’}\boldsymbol{y}+\boldsymbol{\hat{\beta’}}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}$$
$$この式を\boldsymbol{\hat{\beta}}で微分して\frac{\partial\boldsymbol{e’}\boldsymbol{e}}{\partial\boldsymbol{\hat{\beta}}}=0$$
$$を\boldsymbol{\hat{\beta}}について解けばいいわけだがここで注意事項が2点ある。$$
補足(ベクトルの微分)
$$\frac{\partial\boldsymbol{y’}\boldsymbol{\hat{\beta}}}{\partial\boldsymbol{\hat{\beta}}}=\frac{\partial\boldsymbol{\hat{\beta’}}\boldsymbol{y}}{\partial\boldsymbol{\hat{\beta}}}$$
2次元で実際に確かめてみる。
$$\boldsymbol{y}=\left( \begin{array}{ccc} y_1 \\ y_2 \end{array} \right),\boldsymbol{\hat{\beta}}=\left( \begin{array}{ccc} \hat{\beta_1}\\ \hat{\beta_2} \end{array} \right)$$
とすると。
$$\frac{\partial\boldsymbol{y’}\boldsymbol{\hat{\beta}}}{\partial\boldsymbol{\hat{\beta}}}=\frac{\partial}{\partial\boldsymbol{\hat{\beta}}}\left( \begin{array}{ccc} \hat{\beta_1}y_1+\hat{\beta_2}y_2 \end{array} \right)=\left( \begin{array}{ccc} \frac{\partial}{\partial\beta_1}\hat{\beta_1}y_1+\hat{\beta_2}y_2\\ \frac{\partial}{\partial\beta_2}\hat{\beta_1}y_1+\hat{\beta_2}y_2 \end{array} \right)=\left( \begin{array}{ccc} y_1 \\ y_2 \end{array} \right)=\boldsymbol{y}$$
また、$$\boldsymbol{\hat{\beta’}}\boldsymbol{y}=\left( \begin{array}{ccc} \hat{\beta_1}y_1+\hat{\beta_2}y_2 \end{array} \right)$$
より、
$$\frac{\partial\boldsymbol{\hat{\beta’}}\boldsymbol{y}}{\partial\boldsymbol{\hat{\beta}}}=\left( \begin{array}{ccc} y_1 \\ y_2 \end{array} \right)=\boldsymbol{y}$$
であるので、
$$\frac{\partial\boldsymbol{y’}\boldsymbol{\hat{\beta}}}{\partial\boldsymbol{\hat{\beta}}}=\frac{\partial\boldsymbol{\hat{\beta’}}\boldsymbol{y}}{\partial\boldsymbol{\hat{\beta}}}$$
が確かめられた。
$$\frac{\partial\boldsymbol{\hat{\beta}’}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}}{\partial\boldsymbol{\hat{\beta}}}=2(\boldsymbol{X’}\boldsymbol{X})\boldsymbol{\hat{\beta}}$$
$$\boldsymbol{\hat{\beta}}=\left( \begin{array}{ccc} \hat{\beta_1}\\ \hat{\beta_2} \end{array} \right),\boldsymbol{X}=\left( \begin{array}{ccc} x_{11}&x_{12}\\ x_{21}&x_{22} \end{array} \right)$$
で確かめる。
$$\boldsymbol{X’}\boldsymbol{X}=\left( \begin{array}{ccc} x_{11}^2+x^2_{21}&x_{11}x_{12}+x_{21}x_{22}\\ x_{11}x_{12}+x_{21}x_{22}&x_{21}^2+x_{22}^2 \end{array} \right)$$
$$\boldsymbol{\hat{\beta}’}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}は、\boldsymbol{\hat{\beta}’}(\boldsymbol{X’}\boldsymbol{X})\boldsymbol{\hat{\beta}}じゃないと計算できないことに注意して、$$
$$\boldsymbol{\hat{\beta}’}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}を計算してみる。$$
$$\boldsymbol{\hat{\beta}’}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}=\left( \begin{array}{ccc} \hat{\beta_1}&\hat{\beta_2} \end{array} \right)\left( \begin{array}{ccc} x_{11}^2+x^2_{21}&x_{11}x_{12}+x_{21}x_{22}\\ x_{11}x_{12}+x_{21}x_{22}&x_{21}^2+x_{22}^2 \end{array} \right) \left( \begin{array}{ccc} \hat{\beta_1}\\ \hat{\beta_2} \end{array} \right)$$
$$\Leftrightarrow \left( \begin{array}{ccc} \hat{\beta_1}&\hat{\beta_2} \end{array} \right)\left( \begin{array}{ccc} (x_{11}^2+x^2_{21})\hat{\beta_1}+(x_{11}x_{12}+x_{21}x_{22})\hat{\beta_2}\\(x_{11}x_{12}+x_{21}x_{22}) \hat{\beta_1}+(x_{21}^2+x_{22}^2)\hat{\beta_2}\end{array} \right)$$
$$\Leftrightarrow (x_{11}^2+x^2_{21})\hat{\beta_1}^2+(x_{11}x_{12}+x_{21}x_{22})\hat{\beta_2}\hat{\beta_1}$$
$$+(x_{11}x_{12}+x_{21}x_{22}) \hat{\beta_1}\hat{\beta_2}+(x_{21}^2+x_{22}^2)\hat{\beta_2}^2$$
$$これを\boldsymbol{\hat{\beta}}で偏微分してみると、$$
$$\left( \begin{array}{ccc} \frac{\partial}{\partial\hat{\beta_1}}\boldsymbol{\hat{\beta}’}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}\\ \frac{\partial}{\partial\hat{\beta_2}}\boldsymbol{\hat{\beta}’}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}\end{array} \right)=\left( \begin{array}{ccc} 2(x_{11}^2+x^2_{21})\hat{\beta_1}+2(x_{11}x_{12}+x_{21}x_{22})\hat{\beta_2}\\2(x_{11}x_{12}+x_{21}x_{22}) \hat{\beta_1}+2(x_{21}^2+x_{22}^2)\hat{\beta_2}\end{array} \right)=2(\boldsymbol{X’}\boldsymbol{X})\boldsymbol{\hat{\beta}}$$
となり、
$$\frac{\partial\boldsymbol{\hat{\beta}’}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}}{\partial\boldsymbol{\hat{\beta}}}=2(\boldsymbol{X’}\boldsymbol{X})\boldsymbol{\hat{\beta}}$$
が確かめられた。
後半
$$\frac{\partial}{\partial\boldsymbol{\hat{\beta}}}\boldsymbol{y’}\boldsymbol{y}-\boldsymbol{y’}\boldsymbol{X}\boldsymbol{\hat{\beta}}-\boldsymbol{\hat{\beta’}}\boldsymbol{X’}\boldsymbol{y}+\boldsymbol{\hat{\beta’}}\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}=0$$
は、先に挙げたベクトルの微分の性質を用いると、
$$\Leftrightarrow -2\boldsymbol{y’}\boldsymbol{X}\boldsymbol{\hat{\beta}}+2\boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}=0$$
$$\Leftrightarrow \boldsymbol{X’}\boldsymbol{X}\boldsymbol{\hat{\beta}}=\boldsymbol{y’}\boldsymbol{X}$$
$$\Leftrightarrow \boldsymbol{\hat{\beta}}=(\boldsymbol{X’}\boldsymbol{X})^{-1}\boldsymbol{X’}\boldsymbol{y}または(\boldsymbol{X’}\boldsymbol{X})^{-1}\boldsymbol{y’}\boldsymbol{X}$$
となり、切片及び回帰係数の推定値の行列が求められた。
推定値の性質
先ほど、正規方程式を解くことによって、
$$\boldsymbol{\hat{\beta}}=(\boldsymbol{X’}\boldsymbol{X})^{-1}\boldsymbol{X’}\boldsymbol{y}$$
が得られたわけだが、
$$(\boldsymbol{X’}\boldsymbol{X})^{-1}$$
は分散共分散行列の逆行列になっている。
また、
$$\boldsymbol{X’}\boldsymbol{y}$$
はx,yの共分散ベクトルになっている。
つまり、単回帰分析でいうところの
$$\hat{\beta}=\frac{S_{xy}}{S_xx}$$
と一致していることも確かめられる。
コメント
私は高校、大学と行列を学ぶ機会がなかったので、途中で挟んだベクトルの微分の性質で躓いて、答えだけを覚えるということをしていた。
やはり、因子分析や主成分分析を見据えた時に行列の演算ができないと色んな事を覚える羽目になるし、何より、応用して実際のデータを分析したいときも使いこなせない。
RやSPSS、Pythonでポチっとするだけでもいいが、それじゃあ実用レベルに至らない。
株主や自社の決裁者、クライアントを納得させるだけの根拠を伝えられる主張ができないからだ。
とはいえ一番は行列で理解できるようにしておくと読める本が増えるというのが一番の恩恵だと思う。
美しさのかけらもないが、今回の様に可能な限り簡単な行列で実際に演算して、なぞっていけば納得できると思う。
行列が苦手。多変量はの理論は無理。って人にこそこういった泥臭いアプローチをとれば理解可能ということが伝わってほしい。
参考文献