トップページ | ひとつ上のページ | 目次ページ | このサイトについて | ENGLISH

主成分分析

多変量解析 で使われるデータには、 一見すると、たくさん変数があっても、様子の似ているものがある事があります。 主成分分析(Principal Component Analysis:PCA)は、似ている変数でまとめると、数種類になってしまう時に役に立つ方法です。

主成分分析では、たくさんの変数を、特徴の順にまとめ、新しい変数を作ります。 主成分分析の「主成分」とは、このまとめられた変数の事です。 主成分は、データの特徴を表す尺度になります。
PCA

質的データ の場合に主成分分析を行う方法として、 数量化V類があります。

主成分分析の使い道

主成分分析は、大きく分けると、 「低次元でデータを見る」、「変数の仲間分け」の2つの使い道があります。

ちなみに、主成分分析は、「低次元でデータを見る」と「変数の仲間分け」は、別々に進めていくことになるのですが、 両方いっぺんにやってしまう方法としては、 行列の分解 があります。

「総合的にサンプルを見る」

「低次元でデータを見る」の代表的なものが、「総合的にサンプルを見る」になります。 「主成分」を総合評価の点数のようにして使います。 本やネットにある主成分分析の解説では、この使い道を紹介しているものが多いです。

「サンプルの仲間分け」

「低次元でデータを見る」のもうひとつ種類としては、 「サンプルの仲間分け」があります。 たくさんの変数があって、サンプルの分類が難しくても、変数が1、2個になるまで要約されていると、 散布図を見るだけで、仲間分けができるようになります。

この使い道は、 自己組織化マップクラスター分析 と同じです。

自己組織化マップやクラスター分析では、仲間分けはできるのですが、 「この仲間の特徴は何か?」という事を調べやすくはできていません。 主成分分析の仲間分けは、主成分で考察する事ができるので、それぞれの主成分の特徴を把握して置く事で、仲間の特徴を考えやすいです。

「他の多変量解析で、データの前処理に使う」

「低次元でデータを見る」は、さらに種類があり、 「他の多変量解析で、データの前処理に使う」という使い道もあります。

実務で 多変量解析 をする時は、 多重共線性 があったり、「変数の数 > サンプルの数」になっていて、困ることがありますが、 こういった状況でも、とりあえずデータ解析を進めたい時の対策として使えます。 ( 中間層を使った解析

主成分分析と組み合わせる手法は、いろいろ考えられます。 このサイトでは、 重回帰分析 と合体させた 主成分回帰分析 や、 MT法 と合体させた 主成分MT法 のページがあります。

「変数の仲間分け」と因子負荷量

因子負荷量というのは、 元のそれぞれの変数と、それぞれの主成分の相関係数です。

この相関係数を見ると、それぞれの主成分が元の変数のどれの影響を受けているのかが、わかります。 また、第1主成分との相関係数をX軸、第2主成分との相関係数をY軸というようにして、散布図にすると、 近くにプロットされている変数は、似ている変数、といった事もわかります。

この使い道は、 多変量データの相関分析 と同じです。

主成分とは

主成分とは、元の変数に係数をかけて、それらを足し合わせて作られた、合成変数のことです。 主成分ごとに、係数の値が違います。

実際の計算では、係数は、元の変数から作られた分散共分散行列や相関行列の固有ベクトルから作られます。 文献では、固有ベクトルをそのまま使うものがあったり、作られた主成分が 標準化 されたものになるように修正が加わっているものもあります。

主成分分析の弱点

主成分分析は、様々な使い道があって、万能選手のような感じもしますが、弱点もあります。

正規分布と線形和を使うことによる弱点

まず、主成分分析は、 正規分布 を前提にした理論でできています。 また、 主成分は、元の変数の 線形和 として求めます。 そのため、これらがうまく当てはまらないデータに対しては、うまく使えない事があります。

散布図で分析することによる弱点

サンプルの仲間分けや、変数の仲間分けでうまく使えるのは、 検討した方が良い主成分が1、2個になっている場合です。 主成分分析を使う場合は、散布図で仲間分けすることが一般的なので、 3個以上になって来ると、主成分の様々な組み合わせを散布図で見て、総合的に考える必要があり、 とても使い勝手が悪いです。

サンプルの仲間分けなら、 自己組織化マップクラスター分析 、 変数の仲間分けなら、 多変量データの相関分析 には、こういう弱点で悩むことはありません。

各主成分の寄与率は、その主成分の固有値を分子にして、全部の固有値の合計を分母にすると求まります。 例えば、第1主成分の寄与率が60%、第2主成分の寄与率が20%でしたら、 第1主成分と第2主成分で80%の寄与率があることになります。 このくらいの寄与率があれば、主成分分析でも困らないです。

Rで、主成分分析

Rの実施例は下記になります。 下記は、コピーペーストでそのまま使えます。 この手順は、主成分分析を 中間層を使った解析 の1ステップ目に使う時に使えます。

主成分を散布図にすると、サンプルの仲間分けもできます。

抽出する主成分は第3位までにしてあります。 主成分を何位まで使うのかは、累積寄与率を考えて決める必要があります。

setwd("C:/Rtest") # 作業用ディレクトリを変更
Data <- read.table("Data.csv", header=T, sep=",") # データを読み込み
pc <- prcomp(Data1, scale=TRUE) # 主成分分析
summary(pc) # 「Cumulative Proportion」が累積寄与率。これを使って、何個目の主成分までを使うのかを決められる。
pc1 <- predict(pc, Data)[,1:3] # 主成分を第3位まで作成
write.csv(pc1, file = "pc.csv") # 主成分をファイルに出力



A-A型

独立成分分析

ロバストな解析

中間層を使った解析

異常値の判定

参考文献

図解でわかる多変量解析」 涌井良幸・涌井貞美 著 日本実業出版社 2001
主成分は、合成変数の分散を最大にするものであることや、それを求めるための数学的な手続きが、丁寧に解説されています。


グラフィカルモデリング」 宮川雅巳 著 朝倉書店 1997
「主成分分析は、 相関係数 を「距離」とする、 多次元尺度構成法 の一種。相関行列を図にして、視覚的に解析できるようにする。」、として、主成分分析の価値を説明しています。


多変量解析法入門」 永田靖・棟近雅彦 共著 サイエンス社 2001
因子分析の結果の多くは、主成分分析の結果と一致するそうです。


統計思考入門」 水越孝 著 プレジデント社 2014
この本は、統計的に、また、数字を使って物事を見るための入門書です。 統計学そのものだけではなく、統計学でわかる事や、実際の考えの進め方が中心です。
大きくとらえる --> 違いを見る --> 同じ仲間の中を見る、と言った感じです。 この本の例では、渋谷の109を分析するのに、ファッション業界の中での109の位置を確認し、それから109の中を見ています。 この分析で主に使うのが主成分分析で、 クラスター分析 も使います。
また、分析手法では、判断に迷う時に簡単に白黒つける方法として 判別分析 、予測の方法として、 回帰分析 が登場します。
また、データにはどのような偏りがあるかや、 CVM と言った、データの取り方の話も重視されています。


非線形な場合

Python機械学習クックブック」 Chris Albon 著 オライリー・ジャパン 2018
7割がデータの扱い方の話、残りが機械学習モデルの話。
特徴量削減で、非線形な時はカーネル主成分分析。 負値がないと時は、。 非負行列因子分解(NMF) 疎データの時は、TSVD(Truncated Sigular Value Decomposition:打ち切り特異値分解)。


Pythonデータサイエンスハンドブック Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習」 Jake VanderPlas 著 オライリー・ジャパン 2018
NumPy、pandas、Matplotlibで約300ページ。機械学習が180ページ。
主成分分析では、次元削減がうまくできないときの方法として、多様体学習を紹介。 多様体学習の方法は、多次元尺度構成法(MDS)、局所線形埋め込み(Locally Linear Embedding:LLE)、等尺性マッピング(Isometric mapping:Isomap)。
この章のサンプルデータは、「Hello」という文字に見えるように点描された2次元データになっている。 Helloという文字をPNGファイルで保存し、そのPNGからランダムに点を抽出して作っている。




順路 次は 多次元尺度構成法

Tweet