主成分分析を勉強した

今さらながら勉強した。
難しいだろうと思って敬遠してたけど、けっこう面白い、っていうか多変量解析は普通に面白いな。

主成分分析とは

データを取得したまま使用するのではなく、分散が最大になるような合成変量を作成して使用する。
これが一番の特徴である、次元圧縮につながる。

次元圧縮

合成変量を作成するので、例えば5次元のデータから分散が最大になるような線形結合をしてやれば1次元のデータが生まれる。

求め方

目的変数を合成変量の分散とする。
すなわち、合成変量の分散を最大にする線形結合の係数を求めればよい。
制約式は、係数の2乗和が1。
これでラグランジュの未定乗数法を用いれば、固有値を求める問題に帰着できる。
ここで求める最大の固有値に対応する固有ベクトルが線形結合の係数になる。
線形結合を行うと主成分となる変量が計算できるので、サンプルの数だけ変量を計算すればよい。

意味

変量を合成するため、主成分が示す「意味」は自分で考えないといけない。
その時参考にするのが、係数の値である。
係数が正か負か、大きいか小さいか、全体に占める割合は、などから考える。

寄与率

主成分がどれくらいデータ全体を説明できているかを示す値に寄与率がある。
寄与率は、(主成分の分散)/(各変量の分散の和)で表される。
一般的に、寄与率が80%を超えない場合は用いた主成分だけでは説明しきれていないと判断し、上記で求めた2番目に大きい固有値を用いて係数を求める。
その係数を用いて作成した合成変量が第2主成分となる。
第2主成分までを用いた寄与率を計算し、80%を超えていない場合は同様にして第3主成分を求める。

つまり

第n主成分まで求めるとして、元のデータの次元がnより大きければ次元が圧縮されたことになるでしょう、という話。
確かに圧縮できるよね。
よく聞く、主成分分析を用いて可視化しました、というのは、第2か第3主成分まで求めてプロットしているということですね。