因子負荷量が導出できる
「主成分分析の因子負荷量って何?導出方法が分からず公式暗記で終わってしまう」などと困っていませんか?
こういう疑問に答えます。
本記事のテーマ
おさえておきたいポイント
- ①因子負荷量とは
- ➁主成分分析の導出がスタート
- ➂因子負荷量を導出(2次元)
- ➃因子負荷量を導出(3次元)
Excelや固有値、因子負荷量とか暗記不要!
自力で導出できるぜ!
●実際解くと、\(r_{zx}\)=\(\frac{\sqrt{λ}a}{S_{xx}}\)
と
でも標準化して平方和\(S_{xx}\)=1の場合は一致
①因子負荷量とは
因子負荷量とは
因子負荷量は、いろいろ定義やイメージがありますが、シンプルに書くと
上図は2次元の場合なので、因子負荷量は2つあり、
●\(r_{zx}\)
●\(r_{zy}\)
を計算します。
なお、上図では主成分方向zはベクトル表記しますが、相関係数を計算するときは、
●\(|z_i|=a(x_i-\bar{x})+b(y_i-\bar{y})\)
を使います。
\(|z_i|\)からラグランジュの未定係数法を使って固有方程式を使って主成分方向を導出する過程は関連記事で解説しています。ご確認ください。
【重要】主成分分析が導出できる 主成分分析で自力で主成分方向が導出できますか?「主成分分析=固有値解」とインプットしていませんか? 本記事では主成分分析の本質が理解できるために導出過程をわかりやすく解説します。2次元の例で基礎をしっかり理解しましょう。多変量解析を学ぶ人は必読です。 |
因子負荷量の式
教科書と比較するとQCプラネッツの式は少し違います。
●実際解くと、\(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次元の場合
【重要】主成分分析が導出できる 主成分分析で自力で主成分方向が導出できますか?「主成分分析=固有値解」とインプットしていませんか? 本記事では主成分分析の本質が理解できるために導出過程をわかりやすく解説します。2次元の例で基礎をしっかり理解しましょう。多変量解析を学ぶ人は必読です。 |
●3次元の場合
【重要】主成分分析が導出できる(多次元) 主成分分析で自力で主成分方向が導出できますか?「主成分分析=固有値解」とインプットしていませんか? 本記事では主成分分析の本質が理解できるために導出過程をわかりやすく解説します。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)
\)
何次元であっても、
- 情報量Sを定義
- ラグランジュの未定係数法から立式
- 固有方程式を作る
流れは同じです。
以上を基礎において、因子負荷量を導出していきます。
➂因子負荷量を導出(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とすることが多いのはこの理由です。
(\(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}\)
を計算します。
●\(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とすることが多いのはこの理由です。
(\(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次元)
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