以前にも何度か「主成分分析」の話を取り上げました。「どこかで見たことがある行列」では、固有値を用いた手法を説明しました。本日は、Excelのソルバーを用いた方法を紹介します。 もちろん統計ソフトMinitabや「R」を利用すれば、もっと簡単にできますが、原理が知りたい方は読んでみてください。
資料はこちら → 主成分分析その3
p.1 AとBが左表のような値だったとします。右図が分布図です。品質を議論する場合は、ばらつき(分散)が小さいAの方を良しとしますが、情報量として見た場合は、分散量が大きいBの方が情報量が多いのです。
p.2 11人の学生が受けた数学と理科の試験の得点を、横軸が数学、縦軸を理科としてプロットします。二つの科目の総合力=a×数学+b×理科とします。a及びbは重み(どれだけ総合力に寄与しているかを示す)です。ここで、a2+b2=1です。「a=1, b=0」の場合は数学の得点が総合力、「a=0, b=1」の総合力は理科の特定になります。グラフに表すと、前者は数学の得点をx軸に投影した範囲が分散となり、後者の場合はy軸に投影した範囲が理科の分散です。次にaとbを配分して分散が最大になる軸を回転させて探します。今回は、左下のグラフのようになります。3つのグラフの分散を矢印で示しています。ピンク、青、赤の順番に分散が大きくなります。赤の場合が最大分散となり、この時のx軸が第1主成分軸、これに直角な軸が第2主成分軸となります。
p.3 今回は2つのパラメータでしたが、複数パラメータがある場合は、分散が大きい順に第1主成分、第2主成分・・・第n主成分のように並べます。全体の分散で第n主成分の分散を割ったものが寄与率と呼び、累積寄与率が80%までが重要な主成分となります。このようにすることで無駄な情報処理を削減できます。
p.4 車購入にあたって実施したアンケート結果が左上の表です。「第1主成分得点=a×安全+b×燃費+c×性能+d×価格」「第2主成分得点=e×安全+f×燃費+g×性能+h×価格」とおきます。これらの式を用いて、モデルA~Kについて、第1主成分得点と第2主成分得点を計算する式をセルに書き込みます。a、b、c及びdを配分して第1主成分の分散が最大になり、a2+b2+c2+d2=1 の制約条件でソルバーで解きます。第2主成分の方は分散が最大となり 、e2+f2+g2+h2=1 と第1と第2主成分軸が直交するので、内積=0つまりa e+ b f + c g +d h =0の制約条件下でソルバーを実行します。実行した結果、第1と第2主成分の重み係数値が算出されます。
p.5 各因子が第1主成分とどれだけ相関があるかを相関係数を算出して得ます。この相関係数のことを「因子負荷量」と呼びます。横軸を第1主成分の因子負荷量、縦軸が第2主成分の因子負荷量です。安全、燃費、性能及び価格についてプロットします。 車購入時に影響する項目ほどx軸では右の方向にあります。機能が高いほどy軸の情報になる傾向を読みることができそうです。
p.6 第1主成分得点に対して第2主成分得点をプロットした図です。モデルEは燃費や性能の上で要求にマッチした車種であると推定可能である。
機械学習で、たくさんのパラメータがある場合、主成分分析をして無駄な情報をカットするようです。