QCプラネッツ 品質のプロフェッショナルを育成するサイト

【重要】主成分分析が導出できる(多次元)

多変量解析

「n次元の主成分分析をどうやって理解すればよいかわからない、主成分分析=固有値問題も意味が分からない、多次元になると計算機が計算するから何を解いているかがわからない」などと困っていませんか?

こういう疑問に答えます。

本記事のテーマ

【重要】主成分分析が導出できる(多次元)

おさえておきたいポイント

  • ①主成分分析が導出(2次元)
  • ➁主成分分析が導出(3次元)
  • ➂主成分分析が導出(m次元)
主成分分析は自分で解けます!
Excelや固有値、因子負荷量とか暗記不要!
自力で導出できるぜ!
2次元の導出方法が理解できれば、
3次元でも多次元でも導出方法は理解できます!

①主成分分析が導出(2次元)

主成分分析はデータを要約するもの

主成分分析の目的は、

「主成分分析はデータを要約するもの
散布したデータの情報量が集まった方向を探す手法で
平方和を使って方向を探す」

2次元の場合で、主成分分析の導出方法を詳しく解説した関連記事をまず、確認ください。

【重要】主成分分析が導出できる
主成分分析で自力で主成分方向が導出できますか?「主成分分析=固有値解」とインプットしていませんか? 本記事では主成分分析の本質が理解できるために導出過程をわかりやすく解説します。2次元の例で基礎をしっかり理解しましょう。多変量解析を学ぶ人は必読です。

主成分分析が導出(2次元)のポイント

関連記事のまとめを抜粋しますが、

主成分分析とは、散布データから
情報量を要約するもの。
情報量を最大限に要約する条件式が固有方程式になる。
主成分方向は固有ベクトルから求められるが、
「主成分分析=固有値問題」と暗記すると
主成分分析の本質がぼやけるので要注意!

➁主成分分析が導出(3次元)

3次元でデータの情報量を最大化する方向を立式

下図のように、点在するn個のデータのうち、
●座標P(\(x_i,y_i,z_i\))
●平均座標A(\(\bar{x},\bar{y},\bar{z}\))
●主成分方向の単位ベクトル \( \vec{e} \)
●PAと主成分方向との角θ
●主成分方向の長さ\(z_i\)を情報量として評価する
を定義します。

主成分分析

まず、主成分方向の単位ベクトル \( \vec{e} \)を
\( \vec{e} \)=\(
\left(
\begin{array}{c}
a \\
b \\
c
\end{array}
\right)
\)
と定義します。

単位ベクトルなので、

\(a^2+b^2+c^2\)=1
です。この条件式はあとで何度も使います。

情報量\(z_i\)の式を作る

次にまず、内積\( \vec{AP} \)・\( \vec{e} \)を計算します。
内積は高校数学の範囲ですね。

内積\( \vec{AP} \)・\( \vec{e} \)
=\(
\left(
\begin{array}{c}
x_i-\bar{x} \\
y_i-\bar{y} \\
z_i-\bar{z}
\end{array}
\right)
\)・\(
\left(
\begin{array}{c}
a \\
b \\
c
\end{array}
\right)
\)=\(a(x_i-\bar{x})+b(y_i-\bar{y})+ c(z_i-\bar{z})\)

一方、内積\( \vec{AP} \)・\( \vec{e} \)は
\( \vec{AP} \)・\( \vec{e} \)=|\( \vec{AP} \)||\( \vec{e} \)|\(cosθ\)
です。ここで、単位ベクトルの大きさ|\( \vec{e} \)|=1なので、
\( \vec{AP} \)・\( \vec{e} \)=|\( \vec{AP} \)|\(cosθ\)
=|\(z_i\)|
とうまくつながります。これは何次元でも同じ式になります!

つまり、図と内積から

|\(z_i\)|=\(a(x_i-\bar{x})+b(y_i-\bar{y})+ c(z_i-\bar{z})\)
です。これが散布したデータを要約した情報量の元となります。

|\(z_i\)|は\(i\)番目の情報量で全体の情報量を最大化する条件式を作りたいので、
2乗和を取ります。何か平方和っぽいですが常套手段です。

情報量\(S\)の式を作る

情報量\(S\)は
\(S\)=\(\sum_{i=1}^{n}|z_i^2|\)
と書けるので、これを解いていきましょう。

\(S\)=\(\sum_{i=1}^{n}|z_i^2|\)
=\(\sum_{i=1}^{n} (a(x_i-\bar{x})+b(y_i-\bar{y})+ c(z_i-\bar{z}))^2\)
=\(a^2\)\(\sum_{i=1}^{n} (x_i-\bar{x})^2\)
+\(b^2\)\(\sum_{i=1}^{n}(y_i-\bar{y})^2\)
+\(c^2\)\(\sum_{i=1}^{n}(z_i-\bar{z})^2\)
+2\(ab\)\(\sum_{i=1}^{n} (x_i-\bar{x})(y_i-\bar{y})\)
+2\(bc\)\(\sum_{i=1}^{n} (y_i-\bar{y})(z_i-\bar{z})\)
+2\(ca\)\(\sum_{i=1}^{n} (z_i-\bar{z})(x_i-\bar{x})\)
=\(a^2 S_{xx}\)+\(b^2 S_{yy}\)+\(c^2 S_{zz}\)
+2\(ab S_{xy}\)+2\(bc S_{yz}\)++2\(ca S_{xz}\)

ここで、散布データは固定なので、
●\( S_{xx}, S_{yy}, S_{zz},S_{xy}, S_{yz},S_{xz}\)は定数
●\(a,b,c\)は変数
な点に注意ください。

まとめると、

情報量\(S\)=\(a^2 S_{xx}\)+\(b^2 S_{yy}\)+\(c^2 S_{zz}\)
+2\(ab S_{xy}\)+2\(bc S_{yz}\)++2\(ca S_{xz}\)
ただし、\(a^2+b^2+c^2\)=1

この条件で情報量\(S\)を最大化(極値)をもつ条件式を求めたいので、
困ったときの「ラグランジュの未定係数法」を使って条件式を求めてみましょう。

ラグランジュの未定係数法を使って条件式を決める

ラグランジュの未定係数は簡単にいうと

\(g(a,b,c)\)=0のもとで、\(f(a,b,c)\)を最大化したいという
等号制約付きの場合、
関数\(L(a,b,c,λ)\)=\(f(a,b,c)\)-\(λg(a,b,c)\)と置いて、
●\(\displaystyle \frac{\partial L}{\partial a}\)=0
●\(\displaystyle \frac{\partial L}{\partial b}\)=0
●\(\displaystyle \frac{\partial L}{\partial c}\)=0
●\(\displaystyle \frac{\partial L}{\partial λ}\)=0
を同時に満たす解が最大化させる解となる。

情報量\(S(a,b,c)\)は
\(g(a,b)\)=\(a^2+b^2+c^2\)-1=0のもと、
\(S(a,b,c)\)= \(a^2 S_{xx}\)+\(b^2 S_{yy}\)+\(c^2 S_{zz}\)
+2\(ab S_{xy}\)+2\(bc S_{yz}\)++2\(ca S_{xz}\)
を最大化させたいので、
関数\(L(a,b,c,λ)\)=\(f(a,b,c)\)-\(λg(a,b,c)\)と置いて、
●\(\displaystyle \frac{\partial L}{\partial a}\)=0
●\(\displaystyle \frac{\partial L}{\partial b}\)=0
●\(\displaystyle \frac{\partial L}{\partial c}\)=0
●\(\displaystyle \frac{\partial L}{\partial λ}\)=0
を同時に満たす方程式を解いてみましょう。

関数\(L(a,b,c,λ)\)=\(S(a,b,c)\)-\(λg(a,b,c)\)
\(L(a,b,λ)\)= (\(a^2 S_{xx}\)+\(b^2 S_{yy}\)+\(c^2 S_{zz}\)
+2\(ab S_{xy}\)+2\(bc S_{yz}\)+2\(ca S_{xz}\))
-\(λ\)(\(a^2+b^2+c^2\)-1)
より、条件式は
●\(\displaystyle \frac{\partial L}{\partial a}\)=\((2aS_{xx}+2bS_{xy}+2cS_{xz})\)-\(λ2a\)=0
●\(\displaystyle \frac{\partial L}{\partial b}\)=\((2aS_{xy}+2bS_{yy}+2cS_{yz})\)-\(λ2b\)=0
●\(\displaystyle \frac{\partial L}{\partial c}\)=\((2aS_{zz}+2bS_{xz}+2cS_{yz})\)-\(λ2b\)=0
●\(\displaystyle \frac{\partial L}{\partial λ}\)=-\((a^2+b^2+c^2-1) \)=0

上の2つの式を整理して、行列表記します。
\(\left(
\begin{array}{cccc}
S_{xx} & S_{xy} & S_{xz} \\
S_{xy} & S_{yy} & S_{yz} \\
S_{xz} & S_{yz} & S_{zz}
\end{array}
\right)
\)\(\left(
\begin{array}{cccc}
a \\
b \\
c
\end{array}
\right)
\)=\(λ\)\(\left(
\begin{array}{cccc}
a \\
b \\
c
\end{array}
\right)
\)
となり、よく見ると、
3次元の固有方程式になっているのがわかりますね。

固有方程式を解けばよいけど

情報量の最大化の条件式が
結果的に固有方程式になっただけで
主成分方向は固有値、固有ベクトルから
話をスタートさせないこと!
情報量の最大化の条件式が
結果的に固有方程式になっただけで
主成分方向は固有値、固有ベクトルから
話をスタートさせないこと!

3次元の場合の導出方法が理解できました!
2次元と全く同じ導出方法なので、手計算できますね。
ただし、固有方程式の3×3逆行列はさすがにExcel使ってください!

しつこいようですが、同じ導出方法で多次元(n次元)も解説します。
安心してください!2次元の導出方法が分かれば理解できます!

➂主成分分析が導出(m次元)

m次元でデータの情報量を最大化する方向を立式

下図のように、点在するn個のデータのうち、
●座標P(\(x_{1i},x_{2i},…,x_{mi}\))
●平均座標A(\(\bar{x_1},\bar{x_2},…,\bar{x_m}\))
●主成分方向の単位ベクトル \( \vec{e} \)
●PAと主成分方向との角θ
●主成分方向の長さ\(z_i\)を情報量として評価する
を定義します。

主成分分析

まず、主成分方向の単位ベクトル \( \vec{e} \)を
\( \vec{e} \)=\(
\left(
\begin{array}{c}
a_1 \\
a_2 \\
…\\
a_m
\end{array}
\right)
\)
と定義します。

単位ベクトルなので、

\(a_1^2+a_2^2+…+a_m^2\)=1
です。この条件式はあとで何度も使います。

情報量\(z_i\)の式を作る

次にまず、内積\( \vec{AP} \)・\( \vec{e} \)を計算します。
内積は高校数学の範囲ですね。

内積\( \vec{AP} \)・\( \vec{e} \)
=\(
\left(
\begin{array}{c}
x_{1i}-\bar{x_1} \\
x_{2i}-\bar{x_2} \\
… \\
x_{mi}-\bar{x_m} \\
\end{array}
\right)
\)・\(
\left(
\begin{array}{c}
a_1 \\
a_2 \\
… \\
a_m
\end{array}
\right)
\)
=\(a_1(x_{1i}-\bar{x_1})+a_2(x_{2i}-\bar{x_2})+…+ a_m(x_{mi}-\bar{m})\)

一方、内積\( \vec{AP} \)・\( \vec{e} \)は
\( \vec{AP} \)・\( \vec{e} \)=|\( \vec{AP} \)||\( \vec{e} \)|\(cosθ\)
です。ここで、単位ベクトルの大きさ|\( \vec{e} \)|=1なので、
\( \vec{AP} \)・\( \vec{e} \)=|\( \vec{AP} \)|\(cosθ\)
=|\(z_i\)|
とうまくつながります。これは何次元でも同じ式になります!

つまり、図と内積から

|\(z_i\)|=\(a_1(x_{1i}-\bar{x_1})+a_2(x_{2i}-\bar{x_2})+…+ a_m(x_{mi}-\bar{m})\)
です。これが散布したデータを要約した情報量の元となります。

|\(z_i\)|は\(i\)番目の情報量で全体の情報量を最大化する条件式を作りたいので、
2乗和を取ります。何か平方和っぽいですが常套手段です。

情報量\(S\)の式を作る

情報量\(S\)は
\(S\)=\(\sum_{i=1}^{n}|z_i^2|\)
と書けるので、これを解いていきましょう。

\(S\)=\(\sum_{i=1}^{n}|z_i^2|\)
=\(\sum_{i=1}^{n} \)\((a_1(x_{1i}-\bar{x_1})+a_2(x_{2i}-\bar{x_2})+\)…
+ \(a_m(x_{mi}-\bar{m}))^2\)
=\(a_1^2\)\(\sum_{i=1}^{n} (x_{1i}-\bar{x_1})^2\)
+\(a_2^2\)\(\sum_{i=1}^{n} (x_{2i}-\bar{x_2})^2\)

+\(a_m^2\)\(\sum_{i=1}^{n} (x_{mi}-\bar{x_m})^2\)
+
+2\(a_1 a_2\)\(\sum_{i=1}^{n} (x_{1i}-\bar{x_1})(x_{2i}-\bar{x_2})\)
+2\(a_1 a_3\)\(\sum_{i=1}^{n} (x_{1i}-\bar{x_1})(x_{3i}-\bar{x_3})\)

+2\(a_{m-1} a_{m}\)\(\sum_{i=1}^{n} (x_{m-1,i}-\bar{x_{m-1}})(x_{mi}-\bar{x_m})\)
と展開できます。なお、∑でまとめると
=\(\sum_{j=1}^{m}(a_j-2 S_{jj})\)
+2\(\sum_{j=1}^{m-1}\)\(\sum_{k=1,j≠k}^{m}\)\(a_j a_k S_{jk}\)
(\(S_{jk}\)=\(\sum_{i=1}^{n}(x_{ji}-\bar{x_j})( x_{ki}-\bar{x_k})\))
とまとめられます。でも難しいですね。展開した方がわかりやすいですね。

ここで、散布データは固定なので、
●\(S_{jk}\) (\(j=1,…,m,k=1,…,m\))は定数
●\(a_1,a_2,…,a_m\)は変数
な点に注意ください。

まとめると、

情報量\(S\)=\(\sum_{j=1}^{m}(a_j-2 S_{jj})\)
+2\(\sum_{j=1}^{m-1}\)\(\sum_{k=1,j≠k}^{m}\)\(a_j a_k S_{jk}\)
ただし、\(a_1^2+a_2^2+…+a_m^2\)=1

この条件で情報量\(S\)を最大化(極値)をもつ条件式を求めたいので、
困ったときの「ラグランジュの未定係数法」を使って条件式を求めてみましょう。

ラグランジュの未定係数法を使って条件式を決める

ラグランジュの未定係数は簡単にいうと

\(g(a_1,a_2,…,a_m)\)=0のもとで、\(f(a_1,a_2,…,a_m)\)を最大化したいという
等号制約付きの場合、
関数\(L(a,b,c,λ)\)= \(f(a_1,a_2,…,a_m)\)- \(λg(a_1,a_2,…,a_m)\)と置いて、
●\(\displaystyle \frac{\partial L}{\partial {a_1}}\)=0
●\(\displaystyle \frac{\partial L}{\partial {a_2}}\)=0

●\(\displaystyle \frac{\partial L}{\partial {a_m}}\)=0
●\(\displaystyle \frac{\partial L}{\partial λ}\)=0
を同時に満たす解が最大化させる解となる。
式の数はm+1である。
情報量\(S\)=\(\sum_{j=1}^{m}(a_j-2 S_{jj})\)
+2\(\sum_{j=1}^{m-1}\)\(\sum_{k=1,j≠k}^{m}\)\(a_j a_k S_{jk}\)
ただし、\(a_1^2+a_2^2+…+a_m^2\)=1

情報量\(S(a,b,c)\)は
\(g(a_1,a_2,…,a_m)\)= \(a_1^2+a_2^2+…+a_m^2\)-1=0のもと、
\(S(a_1,a_2,…,a_m)\)= \(\sum_{j=1}^{m}(a_j-2 S_{jj})\)
+2\(\sum_{j=1}^{m-1}\)\(\sum_{k=1,j≠k}^{m}\)\(a_j a_k S_{jk}\)
を最大化させたいので、
関数\(L(a,b,c,λ)\)= \(f(a_1,a_2,…,a_m)\)- \(λg(a_1,a_2,…,a_m)\)と置いて、
●\(\displaystyle \frac{\partial L}{\partial {a_1}}\)=0
●\(\displaystyle \frac{\partial L}{\partial {a_2}}\)=0

●\(\displaystyle \frac{\partial L}{\partial {a_m}}\)=0
●\(\displaystyle \frac{\partial L}{\partial λ}\)=0
を満たす方程式を作りましょう。

条件式は結構複雑になりますが、
●\(\displaystyle \frac{\partial L}{\partial a_1}\)=\((2a_1S_{11}+2a_2 S_{12}+…+2a_m S_{1m})\)-\(λ2a_1\)=0
●\(\displaystyle \frac{\partial L}{\partial a_2}\)=\((2a_2 S_{22}+2a_1 S_{12}+…+2a_m S_{2m})\)-\(λ2a_2\)=0
●\(\displaystyle \frac{\partial L}{\partial a_m}\)=\((2a_m S_{mm}+2a_1 S_{1m}+…+2a_m S_{m-1,m})\)-\(λ2a_m\)=0

●\(\displaystyle \frac{\partial L}{\partial λ}\)=-\((a_1^2+a_2^2+…+a_m^2-1) \)=0

上の2つの式を整理して、行列表記します。
\(\left(
\begin{array}{cccc}
S_{11} & S_{12} & \ldots & S_{1m} \\
S_{12} & S_{22} & \ldots & S_{2m} \\
\vdots & \vdots & \ddots & \vdots \\
S_{1m} & S_{2m} & \ldots & S_{mm}
\end{array}
\right)
\) \(
\left(
\begin{array}{c}
a_1 \\
a_2 \\
\vdots \\
a_m
\end{array}
\right)
\)=\(λ\)\(
\left(
\begin{array}{c}
a_1 \\
a_2 \\
\vdots \\
a_m
\end{array}
\right)
\)
となり、m×m行列のおける固有方程式ができます。

固有方程式を解けばよいけど

情報量の最大化の条件式が
結果的に固有方程式になっただけで
主成分方向は固有値、固有ベクトルから
話をスタートさせないこと!
情報量の最大化の条件式が
結果的に固有方程式になっただけで
主成分方向は固有値、固有ベクトルから
話をスタートさせないこと!

n次元の場合の導出方法が理解できました!
2,3次元と全く同じ導出方法なので、手計算できますね。
ただし、固有方程式のm×m逆行列はさすがにExcel使ってください!

2次元の導出方法が分かれば理解できます!

同じ解法を3回読むと、わかる!できる!と自信が出るし、
「こうやって解けば導出できる!」と確信が持てます!

主成分分析の導出方法はあまり解説していないので、
2次元、3次元,n次元としつこく同じ解法で導出方法を解説しました。

まとめ

「【重要】主成分分析が導出できる(多次元)」を解説しました。

  • ①主成分分析が導出(2次元)
  • ➁主成分分析が導出(3次元)
  • ➂主成分分析が導出(n次元)


Warning: count(): Parameter must be an array or an object that implements Countable in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 119

    Warning: Invalid argument supplied for foreach() in /home/qcplanets/qcplanets.com/public_html/wp-content/themes/m_theme/sns.php on line 122
error: Content is protected !!