系統樹を描く (2)

 前回の記事にもあるように、系統樹を描く場合、どの距離や結合法を用いるかによって、最終的に得られる結果が異なることがあります。勿論、個々の分析において、どの距離や結合法を用いるかは、データの性質や研究目的、あるいは分析者の仮説によっても変わるでしょう。しかしながら、複数の距離や結合法を組み合わせて使いたいという場合もあるかも知れません。
 そこで、今回は、コンセンサス・ツリー(あるいは、コンセンサス・ネットワーク)と呼ばれる手法を紹介します。これは、複数の距離と結合法から作られたツリーを1つのツリーとして統合する手法です。以下の例では、前回と同様に、caパッケージのauthorを分析データとして、apeパッケージで系統樹を作成します。

# 分析データ
library(ca)
author
# 複数の木の生成(あくまで一例)
library(ape)
phy.1 <- as.phylo(hclust(dist(author, "euclidean"), "complete"))
phy.2 <- as.phylo(hclust(dist(author, "euclidean"), "ward.D2"))
phy.3 <- as.phylo(hclust(dist(author, "canberra"), "average"))
phy.4 <- as.phylo(hclust(dist(author, "canberra"), "centroid"))
# 木の統合
con <- consensus(phy.1, phy.2, phy.3, phy.4, p = 1, check.labels = TRUE)
# 系統樹の描画
par(mfrow = c(2, 2))
# 有根系統樹
plot(con, type = "c", main = "c")
plot(con, type = "p", main = "p")
# 無根系統樹
plot(con, type = "r", main = "r")
plot(con, type = "u", main = "u")

f:id:langstat:20140509132005p:plain

 上の例では、(1) ユークリッド距離+最長一致法、(2) ユークリッド距離+ウォード法*1、(3) キャンベラ距離+群平均法、(4) キャンベラ距離+重心法、の4種類の木を統合しています。ただ、コンセンサス・ツリーは保守的な結合法であるため、星状系統樹が生成されることが多く、それほど有用な結果が得られない場合もあります。
 個々の木の生成に様々な方法があるように、コンセンサス・ツリーの統合にも複数の方法があり*2、どの方法を選ぶかによって、得られる結果が変化します。従って、単純に複数の木を統合すればよいと考えるのではなく、(たとえ単一の距離や結合法を用いるとしても)なぜその方法を用いるのかということをよく検討することが重要となるでしょう。

*1:ウォード法の実行にあたっては、R 3.1.0から実装されたward.D2を使用しています。

*2:例えば、厳密コンセンサス・ツリーや、多数決コンセンサス・ツリーなどがあります。

広告を非表示にする