LoginSignup
0
0

【備忘録】主成分分析についての整理

Posted at

概要

前回に引き続き、アウトプットをする意味も兼ねて学習した内容を整理していこうと思います。
今回は多変量解析手法の一つである、「主成分分析」について整理していきたいと思います!
正直勉強している中でわからないことがたくさんあって大変だったんですけど、その中でもわかった部分、重要だと思った部分を整理していけたらなぁと思います。
ではいきましょう。

主成分分析とは

主成分分析とは冒頭でもありましたが、多変量解析の手法の一つです。
主成分分析をするとどうなるか簡潔にいうとデータの次元が減ります。
どういうことかというと、例えば10種類の変数があるデータに対して主成分分析をすると変数が2つや3つに削減されます。

どういう時に主成分分析をするのか

主成分分析では次元削減ができると前途でお伝えしました。
では何のために次元削減(変数の数を減らす)をするのでしょうか。

可視化したい時

人に物事をうまく伝えたい時や、データをより解釈しやすくするためには可視化がとても有効に働きます。しかしデータの次元が10次元もあったりすると人間が理解できるレベルの可視化ができません。
そこで次元削減をすることで10次元のデータを2次元・3次元などの人間が理解できるレベルの次元数に減らすことで可視化をすることができます。

データ量を減らしたい時

数理モデルを作成するときは数値計算が伴います。そのとき次元数が多い=データ量が多いということになります。
つまり次元数を減らすとデータ量が減ることは明らかで、データ量が減ると計算量も減らすことができます。
計算量が減ると時間やコストの面で助かりますので、データ量を減らしたいときに主成分分析は用いられます。

主成分分析の重要な要素

主成分分析にはいくつかの重要な要素があります。

1. 寄与率 / 累積寄与率

これまでの説明で、主成分分析は元データから次元削減するための手法であることがわかったかと思います。ですが元々10次元あったデータが2次元のデータになった時に、当然完璧に元データを表現できる訳ではなく、ある程度のデータが次元削減とともに失われます。

寄与率とは主成分分析によって得られた主成分が元データをどれくらい表せているのかを示す値です。

例えば主成分分析によって10次元のデータから5つの主成分を生成したとき、第一主成分の寄与率が40%であれば、第一主成分は元データの40%を表しているということになります。

そして累積寄与率とは第一主成分から順に寄与率を足した値になります。

この寄与率と累積寄与率は主成分分析を評価する上で重要な値になります。
なぜなら寄与率が悪ければ主成分分析によって得られたデータが元データを表現できていないことになるからです。
評価の基準としては第四主成分までの累積寄与率が70~80%以上あると良いとされています。

2. 主成分得点

主成分得点とは主成分分析によって生成された主成分の数値のことを指します。
ただ主成分得点を見るだけではそれが何を表しているのかを理解・解釈するのは難しいです。
この主成分得点の結果を解釈するために先ほど説明した寄与率や、これから説明する主成分負荷量があります。

なので、主成分得点とは主成分分析によって新たに生成された変数の値であると理解して良いと思います。

3. 主成分負荷量

主成分負荷量とは元々のデータの変数と各種成分の関連の大きさを表しています。
主成分負荷量は正の値や負の値をとりますが、符号はそれぞれの方向性を表しており、絶対値が大きければ符号の方向に強い関連を持っているということになります。

例えば10科目の教科に対しての成績を表しているデータを主成分分析し、4つの主成分が得られたとします。
第二主成分を見たときに国語や英語などの文系科目が負の値を取っていて、数学や化学などの理系科目が正の値を取っているとき、第二主成分は文系理系を分ける軸であることがわかります。

ただしこれらの解釈に正解は無く、解釈についてはあくまで人間側で行う必要があるということに注意しなければいけません。

主成分分析の流れ

主成分分析をPythonで実装するときの流れを整理します。

  1. データの前処理
    1. 相関のない不要な変数の削除
  2. データの標準化
  3. 主成分分析の実行
    1. インスタンス化
      1. 主成分の数の指定
      2. 乱数の指定
  4. 寄与率の確認
  5. 主成分負荷量の確認
  6. 可視化
  7. 結果の解釈

まとめ

主成分分析ではデータ量の多いデータの次元削減をし、より解釈しやすい形で表現する分析手法でした。肝心となるのは少ない変数でできるだけ元データを表現できているかという点で、それは寄与率を確認することで評価できます。
また、主成分分析によって生成される主成分得点を見るだけではなかなか結果を解釈することができないので、主成分負荷量を求めることで、各主成分が元データのどの変数とどれくらい関連があるかを見ることで、結果の解釈につながります。

そして次元が削減されることで可視化がしやすくなるので、主成分分析を用いて各データの関連性を探ることができます。

以上が主成分分析の概要の整理でした。
ではまた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0