ホーム > ライブラリー > マーケティング・アナリティクス > データマイニング・ヒッチハイクガイド > 第11回:因子分析(前編)(2)

マーケターのための
データマイニング・ヒッチハイクガイド

分散/共分散行列

分散はある単一変数における平均値を考え、続いて各データの平均からの偏差(各データ -平均)の 2乗を全て合計した値(偏差平方和、偏差2乗和)を、(データサンプル数 -1)で割って求めます。これが分散であり、ばらつきに対するイメージを我々に与えてくれます。一方で共分散は、この例における 2変数 x1 と x2 における共同のばらつきを意味します。共分散においても数字の大きさが分散の大きさを表しますが、一方で共分散はマイナスの値もとり、このときにはその分散の構造が右肩下がりの分布になっていることを意味します。ちょうどここで対象としているデータセットの分布は右肩下がりとなっています。共分散の算出方法は、各データの平均からの偏差をデータサンプルごとに掛け合わせ、そしてそれを足した値(偏差積和)に対して、(データサンプル数 -1)で割ることによって求められます。この例では、以下図15 のようになります。

図15. 分散/共分散の算出

これを以下のような縦横対称の形で配置したのが分散/共分散行列です。詳細な意味合いは割愛しますが、これがこのデータセットが持つばらつきの構造を表した行列となっており、固有値/固有ベクトルを求める上で必要になります。この行列は、例えば変数が 4つであれば 4行 * 4列の行列となり、やはり同じようにデータが縦横対称に配置されます。x1 と x1 がぶつかる部分には x1 の分散を、x1 と x2 がぶつかる部分には x1 と x2 の共分散が配置されます(図16 では 2箇所存在します)。フットボールゲームの総当たり戦に使われる星取表と同じ要領です。

図16. 分散/共分散行列

固有値/固有ベクトル

分散/共分散行列を用いて作成するのが、固有値/固有ベクトルです。固有値は変数の数だけ作成されます。また、固有ベクトルは固有値毎に変数の数だけ作成されます。固有ベクトルは、与えられたデータの分散がどちらの方向を向いているかを定義しています。言わば「方向」を意味する指標です。そして固有値は、その方向に対してどの程度の大きさで分散が広がっているか、つまりばらついているかを意味しています。主成分分析は分散を最大化するような線で、各変数を構築しなおすことであり、それは言い換えれば固有値が最大になる線の方向(固有ベクトル)で各変数を構築しなおすことにあります。固有値/固有ベクトルの算出は複雑になる為、ここでは割愛しますが、上記で得られた分散/共分散を用いると、次のように固有値/固有ベクトルを得られることになります(図17)。

図17. 固有値/固有ベクトル

左側の固有値は大きく、これは最初に意図した直線、つまり分散が最大になるような直線を意味しています。これに対して直角に引いた直線を考えた場合、この方向への分散は 0 ですので、その次にある右側の固有値が 0 になるというのも説明がつきます。それぞれに固有ベクトルが記載されていますが、この値が、a1 及び a2 となります。これによって式 a1x1 + a2x2 を構成する要素が全て出揃ったことになります。

主成分得点

各データサンプルを式 a1x1 + a2x2 に代入して得られたのが以下のような固有値 1 及び固有値 2 に関する主成分得点です(図18)。固有ベクトルは、純粋にその方向を考えるという観点から a12 + a22 = 1(この例では(-0.707)2+(0.707)2 = 1)となるようデザインされており、そのため、単純に x1 - x2(つまり a1=1、a2=-1)といった変数とはなりませんでしたが、当初の想定どおり固有値 1 は分散を最大化し、通話料金偏重ユーザーとパケット料金偏重ユーザーをプラスとマイナスに振り分けるよう主成分得点を算出しました。また固有値 2 は 0 であったため、主成分分析という観点では説明可能な価値を有していません。固有値 2 は固有値 1 に対して垂直に伸びる直線の分散を意味し、つまりこの直線の長さ、大きさが 0 であったことを意味します。そのためこの固有値 2の主成分得点は全て同値に落ち着いたこと考えると、納得がいくものです。主成分分析の目的は新たな合成変数を構築することによって、そのデータセットを説明することであると述べました。ここで得られた式 a1x1 + a2x2 がそれに当たりますが、その式に各データサンプルを当てはめることによって、各データサンプルの特徴を理解することも可能となります。

図18. 主成分得点

寄与率

上述のように、固有値はそれぞれに大きさが異なります。例えば 10個の変数を持つデータセットであれば 10個の固有値が得られますが、それぞれに大きさは異なり、10個よりも小さな数の固有値(主成分)で全体の傾向を説明できることに主成分分析の価値があります。合成変数を作るということはつまり、少ない変数でより多くを説明できるということであり、それはすなわち、主成分分析によって得られた主成分の数が、元々の変数の数よりも少なくなることに意味があります。上述の例において固有値 2 は不要であり、固有値 1 に集約できたことが主成分分析の価値なのです。

そして、どのくらいの説明が出来ているかを判断する基準指標として、「寄与率」という指標が存在します。この寄与率は線形回帰分析において利用されている寄与率とは異なり、分母に各変数の分散の和を、分子に作成された主成分の分散の和を用いて算出されます。作成された全ての固有値に対応する主成分を採用する場合、寄与率は 1 になりますが、それでは分母と分子に利用されている変数、主成分の数が同じとなり、意味がありません。分子に用いる主成分が少ないにも拘らず、寄与率が例えば 0.8 以上の値であれば、それは少ない主成分で充分なデータの説明をしているということになります。ちなみに、ここまでで利用してきた例の場合、主成分 1 の分散は 1,250(分子)、 主成分2 の得点は全て同値であるため分散は 0 となっています(図18)。これに対して変数 x1 と x2 の分散はそれぞれ共に 625 です(図15)。従って 2つの分散の総和は 1,250 となり、これを分母において算出された寄与率は 100%となります。つまり主成分 1 で完全に 2つの変数を説明できているということを意味しています。

(2007年10月22日掲載)

ページの先頭に戻る