2025年2月24日

分散共分散行列

※私は数学者ではありません。自分用のまとめとしてこれを書いています。楽しむ範囲でご覧いただければ幸いです。内容の正確性については専門家のサイトや動画、専門書等で必ず確認をお願いします。


*  *  *


前回まで、相関行列についてさまざまな角度から検討してきました。実際のデータを用いた実証分析についてはこちらの動画を参照してください(随分前に作成したものですので音が小さいです…)。

実証分析では、単位の影響を受けない相関係数ではなく、長さの単位(m)、重さの単位(kg)、お金の単位(万円)など、単位のついたデータを扱います。こうした単位を残したままデータどうしの関係をみるとき、相関係数ではなく共分散という統計量を用います。今回は単位のあるデータどうしの関係を表す分散共分散行列についてみることにします。


*  *  *


分散共分散行列

これまで繰り返し用いてきた相関行列を再掲します。

$$C=\begin{pmatrix} 1 & \rho \\ \rho & 1 \end{pmatrix}$$

右上と左下の要素である相関係数は共分散を用いて次のように表記できます。(ここまで学んだように、相関係数$=cos\theta$であり、コーシー=シュワルツの不等式であり、固有値・固有ベクトル・トレース・行列式と深く関わるものでもありますが…)

$$\rho=\frac{cov_{1,2}}{\sigma_1\sigma_2}$$

ここで、分母の $\sigma_1$ と$\sigma_2$ はそれぞれ変数1と変数2の変動を捉える標準偏差、分子の $cov_{1,2}$ は2つの変数がどれほどともに動くかを表す共分散です。(分散と共分散について不案内な人は、次の動画をご覧ください。第4回分第7回分

相関行列と変数の標準偏差の情報が与えられれば、相関行列の左右から標準偏差行列を掛けるだけで、分散共分散行列が得られます。まず、標準偏差行列を作成しましょう。2変数の標準偏差を $\sigma_1$、$\sigma_2$ とすると、標準偏差行列は 

$$S=\begin{pmatrix} \sigma_1 & 0 \\ 0 & \sigma_2 \end{pmatrix}$$

この行列を左右から相関行列に掛けます。その際、相関係数を上で示した分数表記しておきます。

$$SCS=\begin{pmatrix} \sigma_1 & 0 \\ 0 & \sigma_2 \end{pmatrix}\begin{pmatrix} 1 & \frac{cov_{1,2}}{\sigma_1\sigma_2} \\ \frac{cov_{1,2}}{\sigma_1\sigma_2} & 1 \end{pmatrix}\begin{pmatrix} \sigma_1 & 0 \\ 0 & \sigma_2 \end{pmatrix}$$

まず、左の2つの行列を掛けます。

$$SCS=\begin{pmatrix} \sigma_1 & \frac{cov_{1,2}}{\sigma_2} \\ \frac{cov_{1,2}}{\sigma_1} & \sigma_2 \end{pmatrix}\begin{pmatrix} \sigma_1 & 0 \\ 0 & \sigma_2 \end{pmatrix}$$

つづいて、計算結果と右の行列を掛けます。

$$SCS=\begin{pmatrix} \sigma_1^2 & cov_{1,2} \\ cov_{1,2} & \sigma_2^2 \end{pmatrix}$$

行列で共分散を表記するとき添え字を {行, 列} と書く慣わしですので、左下の共分散を $cov_{21}$ に書き換えます。私 🙎‍♂️ とあなた 🙎‍♀️ の関係は、あなた 🙎‍♀️ と私 🙎‍♂️ の関係と同じです。同じ関係の言い換えにすぎません。変数1と変数2の関係は変数2と変数1の関係と同じです。添え字の表記を入れ替えても値は変わりません( $cov_{12}=cov_{21}$)。

$$SCS=\begin{pmatrix} \sigma_1^2 & cov_{1,2} \\ cov_{2,1} & \sigma_2^2 \end{pmatrix}$$

これで分散共分散行列ができました。


*  *  *


スケールの影響

分散共分散行列はデータの単位に影響を受けます。冒頭に紹介した動画で説明しているように、データを小数点表記するかパーセント表記するかだけで共分散の値は $100^2$、すなわち1万倍違います。見込み客100人あたりの購入率(コンバージョン率)が10人であれば、見込み客と商品の売れ行きデータに10倍のスケールで違いが出るかもしれません。また、電車通学に利用する駅間の距離と通学定期の料金であれば、データの計測単位がkmと円という異なる単位になります。

実際のデータを取り扱うときには、このようなことに気を遣わなければなりません。この点について数値例で考えましょう。$\sigma_1=10$、$\sigma_2=2$ とします。このとき、共分散は

$$\rho=\frac{cov_{1,2}}{\sigma_1\sigma_2}$$
$$\rho=\frac{cov_{1,2}}{10\times 2}$$
$$cov_{1,2}=20\rho$$

すると、分散共分散行列は次のようになります。

$$SCS=\begin{pmatrix} 100 & 20\rho \\ 20\rho & 4 \end{pmatrix}$$

この行列の固有値 $\lambda$ は

$$det\begin{pmatrix} 100-\lambda & 20\rho \\ 20\rho & 4-\lambda \end{pmatrix}=\bf{0}$$

の解です。固有方程式にすると

$$(100-\lambda)(4-\lambda)-(20\rho)^2=0$$

展開して整理すると(ケーリーハミルトンの定理)

$$\lambda^2-(100+4)\lambda+400-400\rho^2=0$$

$$\lambda^2-(100+4)\lambda+(100\times4)(1-\rho^2)=0$$

解の公式を使って $\lambda$ を求めると(途中の式は略します) 

$$\lambda=52\pm 2\sqrt{100\rho^2+24^2}$$

たとえば
  • $\rho=0$ のとき、$\lambda_1=100, \lambda_2=4$
  • $\rho=0.2$ のとき、$\lambda_1, \lambda_2=52\pm 4\sqrt{145}$
  • $\rho=0.4$ のとき、$\lambda_1, \lambda_2=52\pm 8\sqrt{37}$
  • $\rho=0.6$ のとき、$\lambda_1, \lambda_2=52\pm 12\sqrt{17}$
  • $\rho=0.8$ のとき、$\lambda_1, \lambda_2=52\pm 16\sqrt{10}$
  • $\rho=1$ のとき、$\lambda_1=104, \lambda_2=0$

となります。ちなみに $\lambda_j (j=1, 2)$に対応する固有ベクトルは

$$v_j=\frac{1}{\sqrt{(20\rho)^2+(100-\lambda_j)^2}}\begin{pmatrix} 20\rho \\ 100-\lambda_j \end{pmatrix}$$

相関行列のときは比較的計算しやすかったですが、分散共分散行列になると、2×2行列であるにも関わらず計算が相当煩雑になります。これが3×3になると… という感じです。


*  *  *


下図は、$\rho=0$のときの分散共分散行列を視覚化したものです。「単位円の行き先」の記事で示した相関行列の散布図は半径1の単位円(真円)でしたが、分散共分散行列の散布図は2つの変数の変動が標準化されていないので真円にならず、楕円になります。楕円の長半径(横半径)は $\sigma_1^2=100$ を反映して100、短半径(縦半径)は $\sigma_2^2=4$ を反映して4です。赤い線は分散共分散行列の固有ベクトルの向きを表しています。

 
相関係数の値を0から1へ少しずつ大きくしてみましょう。すると、散布図は次のように形を変えます。相関行列の散布図では、円内に置かれた◯が右上に向かう45°線に集まってきました。このグラフも右上に向かう線に集まってきています。ただし、縦軸のスケールは横軸のスケールの5分の1ですので、◯が並ぶのは $y=0.2x$ の線分上です。この線分の傾き0.2は、2変数の標準偏差の比率 $\frac{\sigma_2}{\sigma_1}=\frac{2}{10}$ と一致します。

左上:$\rho=0.2$、右上:$\rho=0.4$、左下:$\rho=0.6$、右下:$\rho=0.8$ 


相関係数が1のときの分散共分散行列の散布図は次のようになります。◯は$y=0.2x$の線分上に綺麗に並びます。 


*  *  *


これらのグラフから、分散共分散行列では、固有ベクトルと固有値がともに変数の変動の相対的大きさ(2変数の標準偏差の比率 $\frac{\sigma_2}{\sigma_1}$)に影響を受けることが読み取れます。相関行列と、その係数としての標準偏差行列に影響を分離できるのではないかと思ったのですが、渾然一体となり分離が難しいです。

相関係数に由来する固有ベクトル・固有値と相対的な変動の大きさをそれぞれ個別に観察したいときには、分散共分散行列だけでなく、相関行列もあわせてみたほうがよさそうです。