主成分分析

「図解でわかる多変量解析―データの山から本質を見抜く科学的分析ツール 」
をまとめる。

主成分分析とは:
多変量のデータからエッセンスとなる少量の変量を合成してデータを分析する手法

例えばこんな状況。

会社の入社試験で次の結果を得た。

No. 教養 専門 英語 面接 論文
1 50 90 40 50 80
2 80 70 80 70 80
3 50 40 90 80 30
4 80 40 80 90 50
5 20 30 30 20 30

(問)営業マン、開発技術者を採用したい時、誰を採用するか?

(1)受験者の能力タイプを判別したいが、
評価軸が入り組んでいるのでわかりにくい
(2)わかりやすい指標を探したい→主成分分析


(主成分分析の数学的基礎)
3変量の場合の主成分分析

データ x y z
1 x1 y1 z1
i xi yi zi
n xn yn zn

(指針)
u=ax+by+cz
という合成変量を用意し、
a^2+b^2+c^2=1
という条件のもとで
分散{s_u}^2
が最大となる分散{s_u}^2を求める。

分散の定義式は、
{s_u}^2 = \sum_i (u_i-\bar{u}) / n
より、
 {s_u}^2 = \LARGE \frac{1}{n-1} \large \{ (u_1-\bar{u})^2+(u_2-\bar{u})^2+...(u_n-\bar{u})^2   \}
これに u=ax+by+czを代入して、分散及び共分散を用いて整理すると、
 {s_u}^2 = a^2 {s_x}^2 +b^2 {s_y}^2 + c^2 {s_z}^2 +2ab s_{xy}+2ab s_{yz}+2ab s_{zx}
これを最大にする{s_x}^2は、ラグランジュの未定乗数法で求めれば良い。
 L = a^2 {s_x}^2 +b^2 {s_y}^2 + c^2 {s_z}^2 +2ab s_{xy}+2ab s_{yz}+2ab s_{zx} - \lambda (a^2+b^2+c^2-1)
\large \frac{\partial L}{\partial a} = \frac{\partial L}{\partial b} = \frac{\partial L}{\partial c} = 0
を解いて、

\left( \begin{array}{ccc} {s_x}^2 & s_{xy} & s_{xz} \\ s_{xy} & {s_y}^2 & s_{yz} \\ s_{xz} & s_{yz} & {s_z}^2 \\  \end{array} \right) \LARGE \left( \begin{array}{c} a \\ b \\ c\\  \end{array}  \right) = \lambda \left( \begin{array}{c} a \\ b \\ c\\  \end{array}  \right)

このとき、固有値 \lambda_1,\lambda_2,\lambda_3が計算できるが
固有値\lambda_nが第n主成分に対応する。
また、寄与率と累積寄与率を以下のように定義する。

(主成分分析の寄与率)= (主成分の分散値) / (資料全体の散らばり量)
= \LARGE \frac{{s_u}^2}{{s_x}^2+{s_y}^2+{s_z}^2+...}

(i番目までの累積寄与率)= (i番目までの主成分の分散の和) / (各変量の分散の和)
 = \LARGE \frac{{s_{u_1}}^2 + {s_{u_2}}^2 + ... + {s_{u_i}}^2}{{s_x}^2+{s_y}^2+{s_z}^2+...}

はじめの問題(成分5つ)についてこれを適用すると、

\left( \begin{array}{ccccc} {s_x}^2 & s_{xy} & s_{xz} & s_{xv} & s_{xw}\\ s_{xy} & {s_y}^2 & s_{yz} & s_{yv} & s_{yw} \\ s_{xz} & s_{yz} & {s_z}^2 & s_{vz} & s_{wz}\\  s_{xv} & s_{yv} & s_{zv} & {s_v}^2 & s_{vw} \\ s_{xw} & s_{yw} & s_{zw} & s_{vw} & {s_w}^2 \\ \end{array} \right) \LARGE \left( \begin{array}{c} a \\ b \\ c\\ d \\ e \\ \end{array}  \right) = \lambda \left( \begin{array}{c} a \\ b \\ c\\ d\\ e\\ \\ \end{array}  \right)

分散・共分散行列は、自前のプログラムで以下のように計算できた。

固有値固有ベクトルは、Scipyに計算させる。

第一主成分 第二主成分
主成分の式 0.54×教養+0.15×専門+0.53×英語+0.59×面接+0.24×論文 0.09×教養+0.66×専門-0.33×英語-0.21×面接+0.64×論文
分散 1964 1261
寄与率 0.58 0.37
累積寄与率 0.58 0.95

これを元に第一主成分と第二主成分について変量プロットを行った。

定性的には第一主成分がコミュニケーション、
第二主成分が理科系の専門知識と言えるかもしれない。
次に、主成分得点表を書く。

1さんは開発技術者で採用はほぼ決定。
問題は、2さんと4さんのどっちを営業で取るか。
もう一度別の試験をしてみるとか?