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

因子負荷量が導出できる

多変量解析

「主成分分析の因子負荷量って何?導出方法が分からず公式暗記で終わってしまう」などと困っていませんか?

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

本記事のテーマ

因子負荷量が導出できる

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

  • ①因子負荷量とは
  • ➁主成分分析の導出がスタート
  • ➂因子負荷量を導出(2次元)
  • ➃因子負荷量を導出(3次元)
主成分分析は自分で解けます!
Excelや固有値、因子負荷量とか暗記不要!
自力で導出できるぜ!
●教科書の式は \(r_{zx}\)=\(\sqrt{λ}a\)
●実際解くと、\(r_{zx}\)=\(\frac{\sqrt{λ}a}{S_{xx}}\)

教科書と式が少し違う。
でも標準化して平方和\(S_{xx}\)=1の場合は一致
教科書は何気なく標準化を処理してから因子負荷量を計算する。それは、因子負荷量の式を簡単にするため。でもそれがかえってわかりにくい!
QCプラネッツでは、シンプルな導出過程で因子負荷量を解いてみます。

①因子負荷量とは

因子負荷量とは

因子負荷量は、いろいろ定義やイメージがありますが、シンプルに書くと

主成分方向と元の説明変数との相関係数
因子負荷量

上図は2次元の場合なので、因子負荷量は2つあり、
●\(r_{zx}\)
●\(r_{zy}\)
を計算します。

なお、上図では主成分方向zはベクトル表記しますが、相関係数を計算するときは、
●\(|z_i|=a(x_i-\bar{x})+b(y_i-\bar{y})\)
を使います。

\(|z_i|\)からラグランジュの未定係数法を使って固有方程式を使って主成分方向を導出する過程は関連記事で解説しています。ご確認ください。

因子負荷量の式

教科書と比較するとQCプラネッツの式は少し違います。

●教科書の式は \(r_{zx}\)=\(\sqrt{λ}a\)
●実際解くと、\(r_{zx}\)=\(\frac{\sqrt{λ}a}{S_{xx}}\)

教科書は他のサイトは、\(r_{zx}\)=\(\sqrt{λ}a\)にするために、説明変数\(x_i\)を標準化\(\frac{x_i-\bar{x}}{s}\)して平均0、分散1に改造してから解くことが多いです。

教科書の導出過程は長いし、
複雑で理解しにくい!
もっと短くシンプルな導出過程にならないのか?

という思いで、シンプルに導出します。ちょっと式が変わるけど、平方和S=1の場合は、教科書と同じ式になります。

教科書を丸暗記せず、
自力で解くと、違う答えが出ることがある!
でも、それを考えるのが勉強!

➁主成分分析の導出がスタート

2次元と3次元の場合で解説します。解き方は全く同じです。2回解き方を見れば、理解度は増しますよね!

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

関連記事に主成分方向を導出する過程をわかりやすく解説しています。

●2次元の場合

●3次元の場合

関連記事の大事なポイントをまとめます。

2次元の場合の大事なポイント

情報量\(S\)=\(\sum_{i=1}^{n}|z_i^2|\)
=\(\sum_{i=1}^{n} (a(x_i-\bar{x})+b(y_i-\bar{y}))^2\)
=\(a^2 S_{xx}\)+2\(ab S_{xy}\)+\(b^2 S_{yy}\)
(\(a^2+b^2=1\):単位ベクトルなので)

ラグランジュの未定係数法から方程式
●\(\displaystyle \frac{\partial L}{\partial a}\)=\((2aS_{xx}+2bS_{xy})\)-\(λ2a\)=0
●\(\displaystyle \frac{\partial L}{\partial b}\)=\((2aS_{xy}+2bS_{yy})\)-\(λ2b\)=0
●\(\displaystyle \frac{\partial L}{\partial λ}\)=-\((a^2+b^2-1) \)=0

これを整理すると、固有方程式ができる。
\(\left(
\begin{array}{cccc}
S_{xx} & S_{xy} \\
S_{xy} & S_{yy}
\end{array}
\right)
\)\(\left(
\begin{array}{cccc}
a \\
b
\end{array}
\right)
\)=\(λ\)\(\left(
\begin{array}{cccc}
a \\
b
\end{array}
\right)
\)

3次元の場合の大事なポイント

情報量\(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 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

これを整理すると、固有方程式ができる。
\(\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)
\)

何次元であっても、

  1. 情報量Sを定義
  2. ラグランジュの未定係数法から立式
  3. 固有方程式を作る

流れは同じです。

以上を基礎において、因子負荷量を導出していきます。

➂因子負荷量を導出(2次元)

因子負荷量を導出

2次元の場合なので、因子負荷量は2つあり、
●\(r_{zx}\)
●\(r_{zy}\)
を計算します。

●\(r_{zx}\)=\(\frac{S_{zx}}{\sqrt{S_{zz} S_{xx}}}\)
=\(\frac{\sum_{i=1}^{n} (a(x_i-\bar{x})+b(y_i-\bar{y}))(x_i-\bar{x})}{\sqrt{\sum_{i=1}^{n} (a(x_i-\bar{x})+b(y_i-\bar{y}))^2 \sum_{i=1}^{n} (x_i-\bar{x})^2}}\)

=\(\frac{\sum_{i=1}^{n} (a(x_i-\bar{x})^2+b(x_i-\bar{x}) (y_i-\bar{y}))}{\sqrt{\sum_{i=1}^{n} (a(x_i-\bar{x})+b(y_i-\bar{y}))^2 \sum_{i=1}^{n} (x_i-\bar{x})^2}}\)
=\(\frac{aS_{xx} +bS_{xy}}{\sqrt{a^2 S_{xx}+2ab S_{xy}+b^2 S_{yy}} \sqrt{S_{xx}}}\)

さて、固有方程式を再掲します。
\(\left(
\begin{array}{cccc}
S_{xx} & S_{xy} \\
S_{xy} & S_{yy}
\end{array}
\right)
\)\(\left(
\begin{array}{cccc}
a \\
b
\end{array}
\right)
\)=\(λ\)\(\left(
\begin{array}{cccc}
a \\
b
\end{array}
\right)
\)

式で表記すると
●\(aS_{xx}+bS_{xy}\)=\(λa\)
●\(aS_{xy}+bS_{yy}\)=\(λb\)

●\(r_{zx}\)=\(\frac{aS_{xx} +bS_{xy}}{\sqrt{a^2 S_{xx}+2ab S_{xy}+b^2 S_{yy}} \sqrt{S_{xx}}}\)
の分子は上の式そのものですね。
\(aS_{xx}+bS_{xy}\)=\(λa\)を代入しましょう。

また、分母を
\(a^2 S_{xx}+2ab S_{xy}+b^2 S_{yy}\)
=\(a(a S_{xx} +b S_{xy})+b(a S_{xy}+b S_{yy})\)
と変形して、固有方程式を代入すると
=\(a aλ+ b b λ\)
=\((a^2+b^2)λ\)
さらに\(a,b\)は単位ベクトルなので、
\((a^2+b^2)\)=1より、
=\(λ\)
となります。

まとめると
\(r_{zx}\)=\(\frac{λa }{\sqrt{λ} \sqrt{S_{xx}}}\)
=\(\frac{\sqrt{λ}a }{\sqrt{S_{xx}}}\)
となります。

一方、\(S_{xx}\)は定数なので、このままです。標準化して\(S_{xx}\)=1とすることが多いのはこの理由です。

\(r_{zx}\)=\(\frac{\sqrt{λ}a }{\sqrt{S_{xx}}}\)
(\(S_{xx}\)=1の場合は、\(r_{zx}\)=\(\sqrt{λ}a\))

\(r_{zy}\)も同様に計算ができて、
\(r_{zy}\)=\(\frac{\sqrt{λ}b }{\sqrt{S_{yy}}}\)
(\(S_{yy}\)=1の場合は、\(r_{zy}\)=\(\sqrt{λ}b\))
と計算できます。

標準化してから因子負荷量を解く理由

標準化して因子負荷量を解く理由は、
式を簡略したいためです。
でも、x,zを標準化する過程も必要なので、導出過程が面倒
です。
今回はあえて標準化しない場合で導出しました。

自分で解いてみると、教科書と一致しない式が出来たりしますが、その違いを理解することが大事です。

➃因子負荷量を導出(3次元)

因子負荷量を導出

3次元の場合なので、因子負荷量は3つあり、変数が多いので、数字で区別します。
●\(r_{z1}\)
●\(r_{z2}\)
●\(r_{z3}\)
を計算します。

2次元の場合と全く同じ解法で導出できます。

●\(r_{z1}\)=\(\frac{S_{z1}}{\sqrt{S_{z1} S_{11}}}\)
=\(\frac{\sum_{i=1}^{n} (a(x_{1i}-\bar{x_1})+b(x_{2i}-\bar{x_2})+c(x_{3i}-\bar{x_3}))(x_{1i}-\bar{x_1})}
{\sqrt{\sum_{i=1}^{n} (a(x_{1i}-\bar{x_1})+b(x_{2i}-\bar{x_2})+c(x_{3i}-\bar{x_3})^2 \sum_{i=1}^{n} (x_{1i}-\bar{x_1})^2}}\)

=\(\frac{aS_{11}+bS_{12}+cS_{13}}{\sqrt{a^2 S_{11}+b^2 S_{22}+c^2 S_{22}+2ab S_{12}+2bc S_{23}+ 2ac S_{13}}\sqrt{S_{11}}}\)

さて、関連記事をベースに固有方程式を再掲します。
\(\left(
\begin{array}{cccc}
S_{11} & S_{12} & S_{13} \\
S_{21} & S_{22} & S_{23} \\
S_{31} & S_{23} & S_{33}
\end{array}
\right)
\)\(\left(
\begin{array}{cccc}
a \\
b \\
c
\end{array}
\right)
\)=\(λ\)\(\left(
\begin{array}{cccc}
a \\
b \\
c
\end{array}
\right)
\)

式で表記すると
●\(aS_{11}+bS_{12}+cS_{13}\)=\(λa\)
●\(aS_{21}+bS_{22}+cS_{23}\)=\(λb\)
●\(aS_{31}+bS_{32}+cS_{33}\)=\(λc\)

●\(r_{zx}\)=\(\frac{aS_{11}+bS_{12}+cS_{13}}{\sqrt{a^2 S_{11}+b^2 S_{22}+c^2 S_{22}+2ab S_{12}+2bc S_{23}+ 2ac S_{13}}\sqrt{S_{11}}}\)

の分子は上の式そのものですね。
\(aS_{11}+bS_{12}+cS_{13}\)=\(λa\)を代入しましょう。

また、分母を
\(a^2 S_{11}+b^2 S_{22}+c^2 S_{22}+2ab S_{12}+2bc S_{23}+ 2ac S_{13}\)
=\(a(aS_{11}+bS_{12}+cS_{13})\)
+\(b(aS_{21}+bS_{22}+cS_{23})\)
+\(c(aS_{31}+bS_{32}+cS_{33})\)
と変形して、固有方程式を代入すると
=\(a aλ+ b bλ+ c cλ\)
=\((a^2+b^2+c^2)λ\)
さらに\(a,b,c\)は単位ベクトルなので、
\((a^2+b^2+c^2)\)=1より、
=\(λ\)
となります。

まとめると
\(r_{z1}\)=\(\frac{λa }{\sqrt{λ} \sqrt{S_{11}}}\)
=\(\frac{\sqrt{λ}a }{\sqrt{S_{11}}}\)
となります。

一方、\(S_{xx}\)は定数なので、このままです。標準化して\(S_{11}\)=1とすることが多いのはこの理由です。

\(r_{z1}\)=\(\frac{\sqrt{λ}a }{\sqrt{S_{11}}}\)
(\(S_{xx}\)=1の場合は、\(r_{zx}\)=\(\sqrt{λ}a\))

\(r_{z2}\),\(r_{z3}\)も同様に計算ができて、
\(r_{z2}\)=\(\frac{\sqrt{λ}b }{\sqrt{S_{22}}}\)
\(r_{z3}\)=\(\frac{\sqrt{λ}c }{\sqrt{S_{33}}}\)
(\(S_{22}\)=1,(\(S_{33}\)=1の場合は、\(r_{z2}\)=\(\sqrt{λ}b\)),\(r_{z3}\)=\(\sqrt{λ}c\))
と計算できます。

変数が増えても因子負荷量の公式の形が変化しないので面白いですね。

まとめ

「因子負荷量が導出できる」を解説しました。

  • ①因子負荷量とは
  • ➁主成分分析の導出がスタート
  • ➂因子負荷量を導出(2次元)
  • ➃因子負荷量を導出(3次元)

error: Content is protected !!