多変量解析 ~主成分分析~ 1.主成分解析とは 2.適用例と解析の目的 3.解析の流れ 4.変数が2個の場合の主成分分析 5.変数がp個の場合の主成分分析 6.行列とベクトルによる表現 第9章 P.132~150 2006/05/26 神津 健太 主成分分析とは • 多くの量的変数が存在する場合に、 それらの間の相関構造を考慮して、 低い次元の合成変数(主成分)に変換し、 データが有している情報をより解釈しやすくする ための方法。 • 「相関係数行列から出発する方法」と 「分散共分散行列から出発する方法」の 2種類がるが、今回は前者だけを説明する。 適用例と解析の目的(1) (P.132~) 表1.試験の成績のデータ 生徒No. 国語 x1 英語 x2 数学 x3 理科 x4 1 86 79 67 68 2 71 75 78 84 3 42 43 39 44 4 62 58 98 95 5 96 97 61 63 6 39 33 45 50 7 50 53 64 72 8 78 66 52 47 9 51 44 76 72 10 89 92 93 91 それぞれの科目を量的変数と考える。 変数の個数は p = 4 である。 x2 x3 100 100 80 80 60 60 40 40 20 x1 20 40 60 80 20 100 x1 20 40 x1 と x2 の散布図 100 x3 100 100 80 80 60 60 40 40 20 x1 40 60 80 20 100 100 80 80 60 60 40 40 20 x2 60 80 x2 と x4 の散布図 40 100 60 80 100 x2 と x3 の散布図 x4 100 40 x2 20 x1 と x4 の散布図 x4 20 80 x1 と x3 の散布図 x4 20 60 20 x3 20 40 60 80 x3 と x4 の散布図 100 適用例と解析の目的(2) それぞれの相関係数を求めると、 (相関係数の求め方はP.13を参照) rx1 x2 0.9 6 7 rx1 x4 0.3 1 1 rx2 x4 0.3 9 8 rx1 x3 0.3 7 6 rx2 x3 0.4 1 5 rx3 x4 0.9 7 2 各変数間の相関係数はすべて正となり、 「国語と英語」「数学と理科」の相関係数は高い値となっている。 つまり、データにはなんらかの相関構造があると考えられる。 ・「より低い次元でデータのばらつきを解釈できないか」 ・「そのためにはどのように合成変数(主成分)を構成すればよいか」 ・「それぞれの主成分の説明力はどれくらいか」 ・「科目や生徒をどのように分類できるか」 などを検討したい。 主成分分析の流れ (1)主成分の導出 相関係数行列 R の第1固有値(最大固有値)λ1 に対応する固有ベクトルから 第1主成分 z1 を求める。次にRの第2固有値λ2 に対応する固有ベクトルから 第2主成分 z2 を求める。同様にして、第 k 主成分 を求める。(k = 3,4,・・・,p) (2)寄与率および累積寄与率 それぞれの主成分の寄与率および累積寄与率を求める。「固有値が1以上」 ないしは「累積寄与率80%を超える」を目安として主成分を選択する。 (3)因子負荷量 因子負荷量を求める。固有ベクトルや因子負荷量の値を参考にして、選択した 各主成分の意味について考察する。また、因子負荷量を散布図にプロットし、 変数の分類を行う。 (4)主成分得点 主成分得点を散布図にプロットし、サンプルの特徴付けや分類を行う。 変数が2個の場合の主成分分析(1) (1)主成分の導出 (P.134~) 変数がx1,x2の2つで、サンプルサイズがnとする。 x1 x1 u1 s1 変数x1,x2を標準化 x2 x2 , u2 s2 また、次のこともにも注意しておく。 n n ui1 ui 2 n 1 2 i 1 n u i 1 2 i 1 ui 2 (n 1)rx1 x2 i1 z1 a1u1 a2u2 とおく。 u1 u2 0 だから z1 0 である。 第1主成分z1を 目的は、データの情報をできるだけ多く有するようにz1を定めることである。 (つまり、係数a1とa2をデータから定めることである。) 変数が2個の場合の主成分分析(2) 「z1がもとのデータの情報をできるだけ多く有する」 → 「データの全体のバラツキをできるだけz1のバラツキに反映させる」と考える。 1 n 1 n 2 2 Vz1 ( zi1 z1 ) zi1 n 1 i 1 n 1 i 1 z1の分散 が最大となるようなa1とa2を求める。 1 n 2 1 n 2 Vz1 z ( a u a u ) i1 n 1 1 i1 2 i2 n 1 i 1 i 1 n n n 1 2 2 2 2 {a1 ui1 2a1a2 ui1ui 2 a2 ui 2 } n 1 i 1 i 1 i 1 a1 a2 2rx1x2 a1a2 2 2 となるので、Vz1の値は(a1,a2)の値が大きくなればいくらでも大きくなる。 そこで a1 a2 1 の制約条件を設けた上で、Vz1の最大化を考える。 2 2 変数が2個の場合の主成分分析(3) 制約付きの最大化問題を求めるために、ラグランジュの未定乗数法を用いる。 未定乗数λを用いて f (a1 , a2 , ) a1 a2 2rx1x2 a1a2 (a1 a2 1) 2 2 2 2 とおき、a1,a2のそれぞれで微分(偏微分)してゼロとおく。 2a1 2rx1x2 a2 2a1 0 2rx1x2 a1 2a2 2a2 0 両辺を2で割って行列の形に表現 1 r x1x2 rx1x2 a1 a1 1 a2 a2 a a1 a2 R a = λa 相関係数行列R λが行列Rの固有値であり、求めるべき[a1,a2]は ベクトルで あることを示している。 固有 変数が2個の場合の主成分分析(4) 両辺に左からベクトル[a1,a2]をかけてみると a a2 2rx1x2 a1a2 (a a2 ) 2 1 2 2 1 2 Vz1 以上より、Vz1を最大化させることは 「相関係数行列Rの固有値問題を解いて、最大固有値λ1に 対応する(長さ1の) 固有ベクトル a を求めれば(つまり、 R a =λ1 a)、それがVz1の最大値を与える[a1,a2]であり、 Vz1の最大値はλ1となる。」 という手続きで実行される。 変数が2個の場合の主成分分析(5) 第1主成分だけでデータの情報を十分説明できないとき → 第1主成分に含まれない情報を追加するために第2主成分を導入する z2 b1u1 b2u2 とおき、 z1 と無相関となるように定める。 まず、z1,z2 の相関係数 rx1 x2 の分子を考えると、 第2主成分 z2 を n (z i 1 n z1 )(zi 2 z 2 ) zi1 zi 2 i1 i 1 n ( a1ui1 a2ui 2 )(b1ui1 b2ui 2 ) i 1 n n n n i 1 i 1 i 1 a1b1 ui1 a1b2 ui1ui 2 a2b1 ui1ui 2 a2b2 ui 2 i 1 2 2 ( n 1){a1b1 rx1 x2 a1b2 rx1 x2 a2b1 a2b2 } ( n 1)aR b ( n-1)1 ab となる。 また、b=[ b1 , b2 ]’ でとおいている。 ( Ra aより aR a) 変数が2個の場合の主成分分析(6) 相関係数 rx1x2 0 となる条件は aR b 0 または ab a1b1 a2b2 0 このことから、第2主成分は n 1 n 1 2 2 Vz 2 ( z z ) z i2 2 i2 n 1 i 1 n 1 i 1 b1 b2 2rx1x2 b1b2 2 2 第1主成分のときと同様に、 b1 b2 1 の制約条件、 2 2 そして相関係数がゼロになる条件のもとで最大化する。 この場合もラグランジュの未定乗数法を用いるが、 相関係数がゼロになる条件あるので、λとηの2つの乗数を用いる。 変数が2個の場合の主成分分析(7) λとηの2つの乗数を用いると f (b1 , b2 , , ) b1 b2 2rx1x2 b1b2 (b1 b2 1) (a1b1 a2b2 ) 2 2 2 2 とおき、b1,b2のそれぞれで微分(偏微分)してゼロとおく。 2b1 2rx1x2 b2 2b1 a1 0 2rx1x2 b1 2b2 2b2 a2 0 それぞれを2で割って行列で表現 1 r x1x2 rx1x2 b1 b1 a1 1 b2 b2 2 a2 Rb b a 2 ここで両辺にa’ををかけ、相関係数がゼロになる条件を考えると η=0となる。よって式は Rb b 変数が2個の場合の主成分分析(8) Rb b より、第2主成分の係数(b1,b2)もRの固有ベクトルである。 Vz1のときと同じ理由でVz2の最大値もRの最大固有値となる。 しかし、Vz2の最大化において、Rの最大固有値λ1に対応する固有ベクト ルbは 制約条件: a b 0 を満たさない。 そこで、Vz2の最大値はRの2番目に大きな固有値λ2となる。 第2主成分z2の構成には、λ2に対応する(長さ1の)固有ベクトル b を用いる。このbは制約条件を満たす。 (対象行列の固有値はすべて実数であり、異なる固有値に対応する 固有ベクトルは直交する。) 変数が2個の場合の主成分分析(9) (2)寄与率および累積寄与率 (P.139~) 2つの主成分z1とz2は、それぞれVz1,Vz2を最大とするように求めた。 そのVz1,Vz2の最大値はλ1,λ2だったので、寄与率は以下のように定義する。 第1主成分の寄与率 1 1 2 第2主成分の寄与率 2 1 2 次に、累積寄与率は以下のように定義する。 第1主成分の累積寄与 率 1 1 2 第2主成分の累積寄与 率 1 2 1 1 2 相関係数 r の値が大きいほど、第1主成分の寄与率は1に近づく。 r=0のときは、どちらの寄与率も0.5になる。 変数が2個の場合の主成分分析(10) (3)因子負荷量と主成分の解釈 (P.140~) 主成分z1,z2と、もとの変数x1,x2との相関係数を考える。 → これらの相関係数を因子負荷量という。 これらは主成分z1,z2と、もとの変数を標準化した変数u1,u2との相関係数に等しい。 因子負荷量と固有値、固有ベクトルの間には以下のような関係がある。 rz1x1 1 a1 rz1x2 1 a2 rz2 x1 2 b1 rz2 x2 2 b2 因子負荷量と固有ベクトルは主成分に対して同じ情報を与える。 第1主成分z1については、[ rz1x1 , rz1x2 ]によってもとの変数との関わり具合を考察して その解釈を与えるが、これは[a1,a2]を見ることと同じである。 変数が2個の場合の主成分分析(11) (4)主成分得点 (P.141~) 個々のサンプルに対して各変数の値を標準化し、 z1 a1u1 a2u2 に代入して得られた値を、第1成分の主成分得点という。 z2 b1u1 b2u2 に代入すれば、第2主成分の主成分得点となる。 各主成分に対して、主成分得点はサンプルの個数だけ計算することが できる。 これらを散布図にプロットし、各主成分に与えた意味付けを考慮しながら サンプルの特徴付けや分類などを試みる。 変数がp個の場合の主成分分析(1) (P.142~) 変数が3個以上になっても考え方は同様である。 変数の標準化 x1 x1 u1 s1 x2 x2 , u2 ・・・ s2 第1主成分 z1 a1u1 a2u2 ・・・ a pu p 相関係数行列 1 r x2 x1 R・ ・ rx x p1 rx1x2 ・ ・ 1 ・ ・ rx p x2 ・ ・ rx1x p rx2 x p ・ ・ 1 up xp xp sp 変数がp個の場合の主成分分析(2) 第k主成分の寄与率 k 1 2 ・・・ p k p 第k主成分までの累積寄与率 1 2 ・・・ k 1 2 ・・・ k 1 2 ・・・ p p 「固有値が1以上」または「累積寄与率が80%を超える」という目安で主成分を選択。 第1主成分の因子負荷量 (第2成分以降も同様) rz1x1 1 a1 , rz1x2 1 a2 , ・・・ rz1x p 1 a p 変数がp個の場合の主成分分析(3) 例として、表1のデータに主成分分析を適用する。 1.データの平均と標準偏差を求める。 x1 66.4 x1 64.0 x1 67.3 x1 68.6 s1 20.5 s1 21.6 s1 19.4 s1 18.0 2.相関係数行列Rを求める。 0.967 0.376 0.311 1 0.967 1 0 . 415 0 . 398 R 0.376 0.415 1 0.972 0 . 311 0 . 398 0 . 972 1 3.固有値と固有ベクトルを求める。(解析ソフトを使用した) 1 2.721 2 1.222 3 0.052 4 0.005 a [0.487, 0.511, 0.508, 0.493]' b [0.527, 0.474, 0.481, 0.516]' c [0.499, 0.539, 0.504, 0.455]' d [0.485, 0.474, 0.506, 0.533]' 変数がp個の場合の主成分分析(4) 4.求めた固有ベクトルから、4つの主成分を求める。 z1 0.487u1 0.511u2 0.508u3 0.493u4 z 2 0.527u1 0.474u2 0.481u3 0.516u4 z3 0.499u1 0.539u2 0.504u3 0.455u4 z 4 0.485u1 0.474u2 0.506u3 0.533u4 5.固有値より、各主成分の寄与率を求める 1 第1主成分の寄与率 p 2 第2主成分の寄与率 p 3 第3主成分の寄与率 p 4 第4主成分の寄与率 p 0.680 0.306 0.013 第2主成分までの累積寄与率は 0.680+0.306=0.986なので、 0.001 第2主成分までで十分 変数がp個の場合の主成分分析(4) 表2.因子負荷量 z1 z2 z3 z4 国語x1 0.804 0.583 -0.114 0.035 英語x2 0.842 0.524 0.123 -0.034 数学x3 0.838 -0.531 -0.115 -0.036 理科x4 0.814 -0.570 0.104 0.038 z2 1 0.5 z1 0 -1 -0.5 0 0.5 1 -0.5 z1:総合的な学力 -1 因子負荷量の散布図 z2:文系・理系の違い 表3.標準化した値と主成分得点 生徒No. 標準化した値 主成分得点 u1 u2 u3 u4 z1 z2 1 0.956 0.694 -0.015 -0.033 0.796 0.857 2 0.244 0.509 0.552 0.856 1.027 -0.348 3 -1.190 -0.972 -1.459 -1.367 -2.491 0.319 4 -0.215 -0.278 1.582 1.467 1.280 -1.763 5 1.444 1.528 -0.325 -0.311 1.166 1.802 6 -1.337 -1.435 -1.149 -1.033 -2.477 -0.299 7 -0.800 -0.509 -0.170 0.189 -0.643 -0.679 8 0.566 0.093 -0.789 -1.200 -0.669 1.341 9 -0.751 -0.926 0.448 0.189 -0.518 -1.148 10 1.102 1.296 1.325 1.244 2.485 -0.084 z2 3 文系 2 低総 合 力 1 z1 0 -3 -2 -1 高総 合 力 0 1 -1 -2 -3 主成分得点の散布図 2 3 理系 行列とベクトルによる表現(1) (1)主成分の導出 変数の個数p (P.146~) サンプルサイズn a1 ui1 a u 2 i2 a ・ , u i ・ (i 1,2,・・・, n) ・ ・ a p uip 第1主成分 z1 a1ui1 a2ui 2 ・・・ a p uip au i ui a 行列とベクトルによる表現(2) z1の分散 Vz1 n 1 2 z i1 n 1 i 1 n n 1 1 ( a u )( u a ) a u u i i i i a n 1 i 1 n 1 i 1 aRa ここでRは相関係数行列である。 最大化の制約条件 a1 a2 ・・・ a p aa 1 2 2 2 行列とベクトルによる表現(3) ラグランジュの未定乗数法 f (a, ) aRa (aa 1) これをベクトルaにより微分して0とおく。(P.39参照) f 2 Ra 2a 0 a Ra a aRa aa Vz1 第1主成分の係数は、固有値問題を解いて、 最大固有値に対応する(長さ1の)固有ベクトルを求めればよい。 行列とベクトルによる表現(4) 第2主成分の導出 z2 b1u1 b2u2 ・・・ bpu p b [b1, b2 , ・・・ , bp ] とすると z2 bui uib z1のときと同様に、z2の分散は Vz2 n 1 2 z bRb i2 n 1 i 1 制約条件 b1 b2 ・・・ bp bb 1 2 2 2 行列とベクトルによる表現(5) z1,z2が無相関である制約条件の設定 1 n zi1 zi 2 (aui )(ui b) (n 1)a ui ui b i 1 i 1 n 1 i 1 (n 1)aRb (n 1)1ab n n aR b 0 または ab a1b1 a2b2 0 ラグランジュの未定乗数法 f (b, , ) bRb (bb 1) ab 2aRb 2ab aa 0 0 Rb b 行列とベクトルによる表現(6) (2)相関係数行列 (P.150~) Rについての固有値問題を解いて、 Ra1 a1 Ra 2 a 2 ・ ・ Ra p a p a1 , a 2 ,・・・, a pは固有ベクトル Rは対象行列なのでスペクトル分解が成り立つ(P.38) R 1a1a1 2a2a2 ・・・ pa pap 第2主成分までの累積寄与率が1に近いとすると、 R ≒ 1a1a1 2a 2a2 主成分分析はスペクトル分解に基づいた相関係数行列Rの近似である。 近似がうまくいくためには、いくつかの大きな固有値が存在し、その他の固有値が ゼロに近ければよい。つまり、そのような相関構造が変数間にあればいい。 逆に、特徴のある相関構造がなく、各変数が無相関に近い場合は、近似は成立せ ず、データの情報を小数個の主成分に縮約できない。
© Copyright 2024 ExpyDoc