主座標分析 PCoA: 原理、方法など

UB3/statistics/pca/pcoa

このページの最終更新日: 2024/04/05

  1. 概要: 主座標分析とは
  2. cmdscale() 関数による主座標分析
  3. 主座標分析の結果を平面上にプロットする
  4. Mardia fit measure による検証

広告

概要: 主座標分析とは

主座標分析 (principal coordinate analysis, PCoA) とは、高次元のデータを 2 - 3 次元に落として視覚化するための分析手法である。

似た方法として 主成分分析 principal component analysis (PCA) がある。主成分分析はユークリッド距離を保ちながら次元を削減するが、主座標分析では他の距離や類似度が使える (1)。つまり、主成分分析は主座標分析の一種であると言える。

文献 3 には、腸内細菌叢の主座標分析について以下のように書かれている。要点をまとめて記しておく。

  • 主座標分析は、腸内細菌叢を一つの生態系と見做し、生態系間の多様性の違いである β多様性を視覚化する 方法である (参考: β多様性について)。
  • 主成分分析は、主座標分析の一種で、サンプル間のユークリッド距離を用いてクラスタリングする手法を指す。
  • UniFrac 距離は、細菌の phylogenetic distance を加味した距離計算方法なので、これは PCA でなく PCoA にあたる。

腸内細菌叢の主座標分析結果は、一般に次のような図で表される (4)。それぞれの点が個人を示し、腸内細菌叢が近い人が近くにプロットされている。楕円は 80% 信頼区間 を示す。

主座標分析の例

cmdscale() 関数による主座標分析

cmdscale() 関数の基礎

まず、使用する 組み込みデータセット は、ヨーロッパの都市間の距離データ eurodist。主座標分析の input は距離データ らしく、高次元データを分析する際には、サンプル間の距離行列をまず求める必要がある。

Rの組み込みデータセット eurodist

使う関数は cmdscale() で、これは距離行列を input とする。eurodist はもともと距離行列のデータセットなので、そのまま input にして良い。R の行列として読み込む。

result <- cmdscale(as.matrix(eurodist), k=2)

result の中身はこのようになっており、それぞれの都市のもつ特徴が 1 と 2 の 2 つの数値で表されている。

Rの組み込みデータセット eurodist の主座標分析

k = 2 でこれを指定しているので、k = 3 にすると result はこのようになる。

Rの組み込みデータセット eurodist の主座標分析

eig = TRUE を指定した場合

cmdscale() 関数を使う際には、原則として以下のように eig = TRUE を指定しておく 方が良い。

result2 <- cmdscale(as.matrix(eurodist), k=2, eig = TRUE)


広告

主座標分析の結果を平面上にプロットする

plot() 関数

このデータを平面上にプロットする。

Rの組み込みデータセット eurodist の主座標分析

この 2 次元上の配置は、実際の都市の位置をよく反映している (1)。

ただし、この方法では以下の eig = TRUE を指定しているとエラーになる。文献 2 のように ordiplot を使う方が良いかもしれない。

ordiplot() 関数

vegan というライブラリに含まれる ordiplot() 関数でも描画できる。

Rの組み込みデータセット eurodist の主座標分析

type は text, points, none のうちから選択。

PCA のように、この図に楕円を追加することもできる。ordiellipse という関数を使うようだ。いくつか参考リンクを置いておく。

Mardia fit measure による検証

これも Ref. 1 から。eig = TRUE を指定することで、Mardia の基準 (Mardia fit measure) を計算できるようになる。

この eig は 固有値 eigen value であり、主成分の分散を示す。この値が大きいほど、多くの情報を集約している ことになる。主成分分析でも使われる値である。

主成分分析でよく使われる「寄与率」は、固有値を全項目の分散の合計で割った値であり、いわば eigen value を割合にしたものである。

Rの組み込みデータセット eurodist の主座標分析

Mardia の基準 は、1 または 2 のどちらかが 0.8 以上であれば OK らしい (参考)。どちらも満たさない場合は、次元を増やす必要がある。そもそも情報を取捨選択しつつ次元を落としているのだがら、可能な場合と不可能な場合があることは合理的である。


広告

References

  1. 主座標分析について簡単に紹介するよ! Link: Last access 2022/07/09.
  2. PCoA & NMDS, distance-based unconstrained ordination.Link: Last access 2023/01/01.
  3. 井上 2019a. 腸内細菌叢解析のいろは. Jpn J Lactic Acid Bact 30, 27-30.
  4. Forbes et al., 2019a. A comparative study of the gut microbiota in immune-mediated inflammatory diseases—does a common dysbiosis exist? Microbiome 6, 221.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。