2変量の主成分分析

関西大学 浅野晃 先生の講義が2次元でわかりやすい。
 http://racco.mikeneko.jp/Kougi/10s/AS/AS05pr.pdf 参照

主成分分析では、変数の間の相関関係を用いて、無相関な合成変数を求めることで多くの変数を少ない変数に縮約する。
・主成分分析では、分散共分散行列の固有値・固有ベクトルを用いる。
 分散共分散行列は対称行列、対称行列は直交行列で対角化できる。(その方向に単純分解・直交分解できる)

・固有ベクトルの成分が主成分の係数、固有値は新変数の分散となっている。

 第1主成分とは、元の変量を組み合わせて新しい変量を作ったとき、その分散が最大になるものである

・新変数の分散共分散行列は対角行列になるので、新変数は無相関である。


2変量の主成分分析

浅野先生の説明では2次元で、固有値の図形的意味を踏まえて、対角化を説明している。
 ・ x1, x2 軸を回転させて z(1), z(2) 軸とし、z(1) 軸上での分散が最大になるようにする
 ・ 相関が 0 になるようにz(2) 軸を定める

分散共分散行列

変量x1,x2の散布図があるとする。(x1:数学、x2:国語)

元の変量 x1, x2 軸でみたとき、x1 の分散を \(s_{11}\) 、x2 の分散を \(s_{22}\) 、x1 と x2 の共分散を \(s_{12}\) とするとき、

      \(\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
\) の分散共分散行列は、\(\Sigma=
\begin{pmatrix}

s_{11} & s_{12}\\
s_{12}& s_{22}
\end{pmatrix}
\)

対称行列は直交行列で対角化できる。即ち、

     \(
\begin{pmatrix}
s_{11} & s_{12}\\
s_{12}& s_{22}
\end{pmatrix}

\begin{pmatrix}
a_{1}\\
a_{2}
\end{pmatrix}
=
\lambda
\begin{pmatrix}
a_{1}\\
a_{2}
\end{pmatrix}\)    から得られる、

2つの固有値のうち大きいほうを \(\lambda_{(1)}\) 、そのときの固有ベクトルを \(
\begin{pmatrix}
a_{1(1)}\\
a_{2(1)}
\end{pmatrix}
\)

2つの固有値のうち小さいほうを \(\lambda_{(2)}\) 、そのときの固有ベクトルを \(
\begin{pmatrix}

a_{1(2)}\\
a_{2(2)}
\end{pmatrix}
\) とすると、

     \(
\begin{pmatrix}
s_{11} & s_{12}\\
s_{12}& s_{22}
\end{pmatrix}

\begin{pmatrix}
a_{1(1)}&a_{1(2)}\\
a_{2(1)}&a_{2(2)}
\end{pmatrix}
=


\begin{pmatrix}
a_{1(1)}&a_{1(2)}\\
a_{2(1)}&a_{2(2)}
\end{pmatrix}

\begin{pmatrix}
\lambda_{(1)}&0\\
0&\lambda_{(2)}
\end{pmatrix}
\)

     \(\therefore
\begin{pmatrix}
a_{1(1)}&a_{1(2)}\\
a_{2(1)}&a_{2(2)}
\end{pmatrix}
^{-1}
\begin{pmatrix}
s_{11} & s_{12}\\
s_{12}& s_{22}
\end{pmatrix}

\begin{pmatrix}
a_{1(1)}&a_{1(2)}\\
a_{2(1)}&a_{2(2)}
\end{pmatrix}
=

\begin{pmatrix}
\lambda_{(1)}&0\\
0&\lambda_{(2)}
\end{pmatrix}
\)

\(\begin{pmatrix}
z_{(1)}\\
z_{(2)}
\end{pmatrix}
=
\begin{pmatrix}
a_{1(1)} & a_{2(1)}\\
a_{1(2)} & a_{2(2)}
\end{pmatrix}

\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
\) は新変数、係数行列の行ベクトルが \(\Sigma\) の固有ベクトル。

\(\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
=
\begin{pmatrix}
a_{1(1)} & a_{1(2)}\\
a_{2(1)} & a_{2(2)}
\end{pmatrix}


\begin{pmatrix}
z_{(1)}\\
z_{(2)}
\end{pmatrix}
\) は元変数、係数行列の列ベクトルが \(\Sigma\) の固有ベクトル。

次のような表にすると分かりやすい。

\(z_{(1)}\) \(z_{(2)}\)
\(x_1\) \(a_{1(1)}\) \(a_{1(2)}\)
\(x_2\) \(a_{2(1)}\) \(a_{2(2)}\)

\(P=
\begin{pmatrix}
a_{1(1)}&a_{1(2)}\\
a_{2(1)}&a_{2(2)}
\end{pmatrix}\) は基底の取り替え行列であり、表から列ベクトルの内積として

     \(z_{(1)}=a_{1(1)}x_1+a_{2(1)}x_2=\left(a_{1(1)},a_{2(1)}\right)\cdot \left(x_1,x_2\right)\)

     \(z_{(2)}=a_{1(2)}x_1+a_{2(2)}x_2=\left(a_{1(2)},a_{2(2)}\right)\cdot \left(x_1,x_2\right)\)

主成分は、固有ベクトル方向への正射影であることが分かる。

また、行ベクトルの内積として

     \(x_1=a_{1(1)}z_{(1)}+a_{1(2)}z_{(2)}=\left(a_{1(1)},a_{1(2)}\right)\cdot \left(z_{(1)},z_{(2)}\right)\)

     \(x_2=a_{2(1)}z_{(1)}+a_{2(2)}z_{(2)}=\left(a_{2(1)},a_{2(2)}\right)\cdot \left(z_{(1)},z_{(2)}\right)\)    と表されるが、

     \(\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
=
z_{(1)}
\begin{pmatrix}
a_{1(1)}\\
a_{2(1)}
\end{pmatrix}
+
z_{(2)}
\begin{pmatrix}
a_{1(2)}\\
a_{2(2)}
\end{pmatrix}
\)

と表現すれば、主成分は固有ベクトルを基底とした新しい成分表示であることが分かる。

     \(\begin{pmatrix}
z_{(1)}\\
z_{(2)}
\end{pmatrix}\) の分散共分散行列は、 \(\begin{pmatrix}
\lambda_{(1)}&0\\
0&\lambda_{(2)}
\end{pmatrix}
\) となる。

\(z_{(1)}\) が第1主成分であり、\(\lambda_{(1)}\) はその分散。 \(z_{(2)}\) が第2主成分であり、\(\lambda_{(2)}\) はその分散。

\(z_{(1)}\) 、\(z_{(2)}\) は無相関となる。

このことは、次のように導かれる。

     \(
\begin{pmatrix}
z_{(1)}\\
z_{(2)}
\end{pmatrix}

\begin{pmatrix}
z_{(1)}& z_{(2)}
\end{pmatrix}
=

\begin{pmatrix}
a_{1(1)} & a_{2(1)}\\
a_{1(2)} & a_{2(2)}
\end{pmatrix}

\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
\begin{pmatrix}
x_{1}& x_{2}
\end{pmatrix}

\begin{pmatrix}
a_{1(1)} & a_{2(1)}\\
a_{1(2)} & a_{2(2)}
\end{pmatrix}^{-1}\)

簡単のため変数の平均を0とすると、上式の期待値が分散共分散行列である。

     \(\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
\) の分散共分散行列は、 \(E \left(\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
\begin{pmatrix}
x_{1}& x_{2}
\end{pmatrix} \right)
=
\begin{pmatrix}

s_{11} & s_{12}\\
s_{12}& s_{22}
\end{pmatrix}
\) だから、

\(\begin{pmatrix}
z_{(1)}\\
z_{(2)}
\end{pmatrix}\) の分散共分散行列は、\(\begin{pmatrix}
a_{1(1)} & a_{2(1)}\\
a_{1(2)} & a_{2(2)}
\end{pmatrix}

\begin{pmatrix}
s_{11} & s_{12}\\
s_{12}& s_{22}
\end{pmatrix}

\begin{pmatrix}
a_{1(1)} & a_{2(1)}\\
a_{1(2)} & a_{2(2)}
\end{pmatrix}^{-1}
=
\begin{pmatrix}
\lambda_{(1)}&0\\
0&\lambda_{(2)}
\end{pmatrix}\)

共分散が0だから、\(z_{(1)}\) 、 \(z_{(2)}\) は無相関である。

分散が最大になるのは z(1) 軸方向であることは、ラグランジュの未定乗数法より導かれる。

[浅野晃 様] http://racco.mikeneko.jp/Kougi/10s/AS/AS06pr.pdf 参照

[注意]

主成分分析では行列が2種類登場するので、区別できるようにすることが重要である。

(1) 基底の取り替え行列

\(\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
=

\begin{pmatrix}
a_{1(1)}&a_{1(2)}\\
a_{2(1)}&a_{2(2)}
\end{pmatrix}

\begin{pmatrix}
z_{(1)}\\
z_{(2)}
\end{pmatrix}
\) の係数は、基底の取り替え行列 \(P=
\begin{pmatrix}
a_{1(1)}&a_{1(2)}\\
a_{2(1)}&a_{2(2)}
\end{pmatrix}\) である。

基底の取り替え行列は直交行列である。

(2) 因子負荷行列

主成分を標準化すると因子分析に応用できる。即ち、

     \(\begin{pmatrix}
x_{1}\\
x_{2}
\end{pmatrix}
=

\begin{pmatrix}
\sqrt{\lambda_{(1)}} a_{1(1)}&\sqrt{\lambda_{(2)}} a_{1(2)}\\
\sqrt{\lambda_{(1)}} a_{2(1)}&\sqrt{\lambda_{(2)}} a_{2(2)}
\end{pmatrix}

\begin{pmatrix}
\left. z_{(1)} \right/ \sqrt{\lambda_{(1)}} \\
\left. z_{(2)} \right/ \sqrt{\lambda_{(2)}}
\end{pmatrix}
\)

\(u_1=\left. z_{(1)} \right/ \sqrt{\lambda_{(1)}} \: \:,
\:\:u_2=\left. z_{(2)} \right/ \sqrt{\lambda_{(2)}}\) 、\(X=
\begin{pmatrix}x_1\\
x_2
\end{pmatrix}
\:,\:
U=
\begin{pmatrix}u_1\\
u_2
\end{pmatrix}\) とおけば、

     \(X=AU\) ( \(X,U\) は標準化されている)

係数の行列 \(A\) を因子負荷行列という。

     \(x_1=\sqrt{\lambda_{(1)}} a_{1(1)}\cdot u_1+
\sqrt{\lambda_{(2)}} a_{1(2)}\cdot u_2\)

     \(x_2=\sqrt{\lambda_{(1)}} a_{2(1)}\cdot u_1+
\sqrt{\lambda_{(2)}} a_{2(2)}\cdot u_2\)

表で表すと、

\(u_{1}\) \(u_{2}\)
\(x_1\) \(\sqrt{\lambda_{(1)}} a_{1(1)}\) \(\sqrt{\lambda_{(2)}} a_{1(2)}\)
\(x_2\) \(\sqrt{\lambda_{(1)}} a_{2(1)}\) \(\sqrt{\lambda_{(2)}} a_{2(2)}\)

標準化されているので相関係数は共分散と等しく、

     \(cor(x_1,u_1)=cov(x_1,u_1)=E(x_1\cdot u_1)=\sqrt{\lambda_{(1)}} a_{1(1)}\)

     \(cor(x_1,u_2)=cov(x_1,u_2)=E(x_1\cdot u_2)=\sqrt{\lambda_{(2)}} a_{1(2)}\)

同様に、 \(cor(x_2,u_1)=\sqrt{\lambda_{(1)}} a_{2(1)}\:\:,\:\:cor(x_2,u_2)=\sqrt{\lambda_{(2)}} a_{2(2)}\)  であるので

\(u_{1}\) \(u_{2}\)
\(x_1\) \(cor(x_1,u_1)\) \(cor(x_1,u_2)\)
\(x_2\) \(cor(x_2,u_1)\) \(cor(x_2,u_2)\)

因子負荷行列は、変量と因子との相関係数からなる行列となっている。


© hyoccori-toukei 2021