數(shù)量生態(tài)學(xué):R語(yǔ)言的應(yīng)用—第四章聚類(lèi)分析1概述

數(shù)量生態(tài)學(xué):R語(yǔ)言的應(yīng)用—第四章聚類(lèi)分析

之前我們了解了關(guān)聯(lián)測(cè)度與矩陣,主要是Q模式與R模式获列。

從今天開(kāi)始給大家?guī)?lái)《數(shù)量生態(tài)學(xué):R語(yǔ)言的應(yīng)用》—第四章聚類(lèi)分析粱胜。

1.R模式思維導(dǎo)圖

首先對(duì)昨天的R模式進(jìn)行梳理一下烛占,做一個(gè)思維導(dǎo)圖


R模式

2. 聚類(lèi)概述

在生態(tài)學(xué)研究當(dāng)中徒蟆,聚類(lèi)的目的是識(shí)別環(huán)境中不連續(xù)對(duì)象的子集胁出。實(shí)際上,聚類(lèi)分析是所研究對(duì)象(或R模式下的變量)集合的分組段审。聚類(lèi)分析不是典型的統(tǒng)計(jì)方法全蝶,因?yàn)闆](méi)有檢驗(yàn)任何統(tǒng)計(jì)假設(shè),但是聚類(lèi)后分組的穩(wěn)健性是可以檢驗(yàn)的戚哎。聚類(lèi)分析有助于探索隱藏在數(shù)據(jù)背后的屬性特征裸诽。

注意:大部分聚類(lèi)方法都是基于關(guān)聯(lián)矩陣進(jìn)行計(jì)算嫂用,也就說(shuō)明選擇恰當(dāng)關(guān)聯(lián)系數(shù)非常重要

2.1 不同類(lèi)型的聚類(lèi)方法:

聚類(lèi)方法
  • 層次聚類(lèi)的結(jié)果一般用聚類(lèi)樹(shù)或類(lèi)樹(shù)狀圖表示型凳。非層次法的結(jié)果只給出所分對(duì)象(或變量)的分類(lèi)組。
  • 分類(lèi)組可以進(jìn)一步分析或代表最終結(jié)果嘱函,或當(dāng)研究對(duì)象具有空間屬性時(shí)甘畅,可以在研究區(qū)地圖上標(biāo)注不同的分類(lèi)組

2.2 加載所需的包和數(shù)據(jù)

#加載包和數(shù)據(jù)
library(ade4)
library(adespatial)
library(vegan)
library(gclus)
library(cluster)
library(pvclust)
library(RColorBrewer)
library(labdsv)
library(rioja)
library(indicspecies)
library(mvpart)
library(MVPARTwrap)
library(dendextend)
library(vegclust)
library(colorspace)
library(agricolae)
library(picante)

#加載函數(shù)
source("drawmap.R")
source("drawmap3.R")
source("hcoplot.R")
source("test.a.R")
source("coldiss.R")
source("bartlett.perm.R")
source("boxplerk.R")
source("boxplert.R")

#從聚類(lèi)結(jié)果獲得二元差異矩陣的函數(shù)
grpdist <- function(X)
{
  require(cluster)
  gr <- as.data.frame(as.factor(X))
  distgr <- daisy(gr,"gower")
  distgr
  }

#導(dǎo)入Doubs數(shù)據(jù)
load("Doubs.RData")
#剔除無(wú)物種數(shù)據(jù)的樣方8
spe <- spe[-8,]
env <- env[-8,]
spa <- spa[-8,]
latlong <- latlong[-8,] #經(jīng)緯度

3. 基于連接的層次聚類(lèi)

3.1 單連接聚合聚類(lèi)

單連接聚合聚類(lèi)也被稱(chēng)為最近鄰體分類(lèi),該方法聚合對(duì)象的依據(jù)是最短的成對(duì)距離(或最大的相似性):每個(gè)對(duì)象或聚類(lèi)簇首次連接的列表稱(chēng)為主連接鏈往弓,也稱(chēng)最小拓展樹(shù)疏唾。

最經(jīng)常的層次聚類(lèi)分析可以通過(guò)states程序包內(nèi)hclust()函數(shù)實(shí)現(xiàn)

#先計(jì)算樣方之間的弦距離矩陣
spe.norm <- decostand(spe,"normalize")
spe.ch <- vegdist(spe.norm,"euc")

#將站點(diǎn)名稱(chēng)附加到類(lèi)’dist‘的對(duì)象
attr(spe.ch,"labels") <- rownames(spe)

#進(jìn)行單連接聚合聚類(lèi)
spe.ch.single <- hclust(spe.ch,method = "single")

#使用默認(rèn)參數(shù)選項(xiàng)繪制聚類(lèi)樹(shù)
plot(spe.ch.single,
     labels=row.names(spe),
     main="弦距離-單連接",
     xlab="單連接聚合聚類(lèi)",
     ylab="高度")
弦轉(zhuǎn)化數(shù)據(jù)
弦轉(zhuǎn)化矩陣
單連接聚合聚類(lèi)

基于單連接聚類(lèi)的結(jié)果,我們?nèi)绾蚊枋鲞@個(gè)數(shù)據(jù)集函似?是簡(jiǎn)單的單一梯度還是區(qū)分明顯的樣方組槐脏?能否辨認(rèn)樣方的連接鏈?樣方1撇寞、5和9為什么最后連接顿天?

3.2 完全連接聚合聚類(lèi)

與單連接聚合聚類(lèi)相反,完全連接聚合聚類(lèi)(也稱(chēng)作"最遠(yuǎn)鄰體分類(lèi)")允許一個(gè)對(duì)象(或一個(gè)組)與另一個(gè)組聚合的依據(jù)是最遠(yuǎn)距離對(duì)蔑担。所以?xún)蓚€(gè)組所以成員之間的距離都必須全部計(jì)算牌废,然后再比較

#計(jì)算完全連接聚合聚類(lèi)
spe.ch.complete <- hclust(spe.ch,method = "complete")

plot(spe.ch.complete,
     labels=row.names(spe),
     main="弦距離-完全連接",
     xlab="完全連接聚合聚類(lèi)",
     ylab="高度")
完全連接聚合聚類(lèi)

當(dāng)前所給的樣方是沿著河流分布(樣方的編號(hào)按照流向編排)啤握,這個(gè)聚類(lèi)分析結(jié)果是否將位置相近的樣方排在同一個(gè)組呢鸟缕??jī)煞N完全有效的聚類(lèi)分析方法分析同一數(shù)據(jù),為什么產(chǎn)生如此不同的聚類(lèi)結(jié)果呢排抬?

從上面兩種聚類(lèi)樹(shù)懂从,我們可以清楚的看到兩種方法聚類(lèi)原理及結(jié)果的差異:

單連接聚類(lèi)產(chǎn)生的分類(lèi)組雖然不清晰,但容易識(shí)別數(shù)據(jù)的梯度蹲蒲。相反番甩,完全連接聚類(lèi)產(chǎn)生的分組間的差異比較明顯,更適合去尋找和識(shí)別數(shù)據(jù)的間斷分布悠鞍。

4. 平均聚合聚類(lèi)

平均聚合聚類(lèi)是一類(lèi)基于對(duì)象間平均相異或聚類(lèi)簇形心的聚類(lèi)方法对室。有四種方法模燥,不同的方法區(qū)別在于組的位置計(jì)算方式(算數(shù)平均或形心)和當(dāng)計(jì)算融合距離時(shí)是否用每組包含的對(duì)象數(shù)量作為權(quán)重。

下圖是4種平均聚合聚類(lèi)方法掩宜。引號(hào)內(nèi)名稱(chēng)來(lái)自hclust()函數(shù)內(nèi)與方法對(duì)應(yīng)的參數(shù):

4種平均聚合聚類(lèi)方法

最有名的當(dāng)屬UPGMA方法蔫骂,一個(gè)對(duì)象加入一個(gè)組的依據(jù)是這個(gè)對(duì)象與該組每個(gè)成員之間的平均距離。

#計(jì)算平均(UPGMA)聚合聚類(lèi)
spe.ch.UPGMA <- hclust(spe.ch,method = "average")
plot(spe.ch.UPGMA,
     labels=row.names(spe),
     main="弦距離-UPGMA",
     xlab="UPGMA聚合聚類(lèi)",
     ylab="高度")
#計(jì)算形心聚類(lèi)
spe.ch.centroid <- hclust(spe.ch,method = "centroid")
plot(spe.ch.centroid,
     labels=row.names(spe),
     main="弦距離-形心",
     xlab="形心聚類(lèi)",
     ylab="高度")
平均(UPGMA)聚合聚類(lèi)
形心聚類(lèi)

注意:UPGMC和WPGMC有時(shí)會(huì)導(dǎo)致聚類(lèi)樹(shù)翻轉(zhuǎn)的現(xiàn)象牺汤,使得聚類(lèi)樹(shù)不再形成連續(xù)的嵌套分區(qū)辽旋,分類(lèi)結(jié)果難以區(qū)分。

5. Ward 最小方差聚類(lèi)

這是一種基于最小二乘法線性模型準(zhǔn)則的聚類(lèi)方法檐迟,分組依據(jù)是使組內(nèi)平方和(即方差分析的方差)最小化补胚。聚類(lèi)簇內(nèi)方差和等于聚類(lèi)簇內(nèi)成員間距離的平方和除以對(duì)象的數(shù)量。

# 計(jì)算Ward最小方差聚類(lèi)
spe.ch.ward <- hclust(spe.ch, method="ward.D2")
#注意:在R 3.0.3 版本后追迟,ward聚類(lèi)方法的名稱(chēng)改為“ward.D2”溶其,但直接寫(xiě)ward也可以
plot(spe.ch.ward,
     labels=row.names(spe),
     main="聚類(lèi)樹(shù)",
     ylab="高度",
     xlab="Ward聚類(lèi)")
Ward 最小方差聚類(lèi)
#使用距離平方造成此聚類(lèi)樹(shù)上半部分過(guò)于膨脹。為了使聚類(lèi)樹(shù)比例看起來(lái)
#更協(xié)調(diào)而不影響結(jié)構(gòu)敦间,可以使用當(dāng)前融合水平的平方根重新繪圖
spe.ch.ward$height <- sqrt(spe.ch.ward$height)
plot(spe.ch.ward,
     labels=row.names(spe),
     main="聚類(lèi)樹(shù)",
     ylab="高度",
     xlab="Ward聚類(lèi)")
平方根后

6 靈活聚類(lèi)

cluster程序包內(nèi)的agnes()函數(shù)通過(guò)參數(shù)method和par.method的設(shè)置也可以實(shí)現(xiàn)靈活聚類(lèi)瓶逃。在agnes()函數(shù)中,靈活的聚類(lèi)由參數(shù)method="flexible"和參數(shù)par.method設(shè)置為向量值1廓块、3或4來(lái)實(shí)現(xiàn)厢绝。其中最簡(jiǎn)單的應(yīng)用是將參數(shù)設(shè)為β,因此得名“beta-靈活聚類(lèi)”带猴。

為了獲得β=-0.25昔汉,給出的值是par.method=0.625,因?yàn)棣?(1-β)/2=(1-(-0.25))/2=0.625拴清。見(jiàn)agnes()的幫助文檔文件以獲取更多詳細(xì)信息靶病。

par(mfrow = c(2, 2))

# 使用cluster程序包內(nèi)的agnes()計(jì)算beta靈活聚類(lèi)
# beta = -0.1
spe.ch.beta1 <- agnes(spe.ch, method = "flexible",
                      par.method = 0.55)
# beta = -0.25
spe.ch.beta2 <- agnes(spe.ch, method = "flexible",
                      par.method = 0.625)
# beta = -0.5
spe.ch.beta3 <- agnes(spe.ch, method = "flexible",
                      par.method = 0.75)
# 改變agens獲得對(duì)象屬性
class(spe.ch.beta1)
spe.ch.beta1 <- as.hclust(spe.ch.beta1)
class(spe.ch.beta1)
spe.ch.beta2 <- as.hclust(spe.ch.beta2)
spe.ch.beta3 <- as.hclust(spe.ch.beta3)
plot(spe.ch.beta1, 
     labels = rownames(spe), 
     main = "弦距離-Beta-靈活聚類(lèi) (beta=-0.1)")
plot(spe.ch.beta2, 
     labels = rownames(spe), 
     main = "弦距離-Beta-靈活聚類(lèi) (beta=-0.25)")
plot(spe.ch.beta3, 
     labels = rownames(spe), 
     main = "弦距離-Beta-靈活聚類(lèi) (beta=-0.5)")
弦距離-Beta-靈活聚類(lèi)

今天先簡(jiǎn)單介紹一下聚類(lèi)分析以及聚類(lèi)的方法,下一節(jié)將解讀和比較層次聚類(lèi)結(jié)果贷掖。

如有不足或錯(cuò)誤之處嫡秕,請(qǐng)批評(píng)指正。
有什么不明白的也歡迎留言討論苹威。

歡迎關(guān)注微信公眾號(hào):fafu 生信 小蘑菇

往期內(nèi)容:

《數(shù)量生態(tài)學(xué):R語(yǔ)言的應(yīng)用》第三章-R模式

《數(shù)量生態(tài)學(xué):R語(yǔ)言的應(yīng)用》第二版第三章-關(guān)聯(lián)測(cè)度與矩陣------Q模式

《數(shù)量生態(tài)學(xué):R語(yǔ)言的應(yīng)用》第二版筆記2

《數(shù)量生態(tài)學(xué)——R語(yǔ)言的應(yīng)用》第二版閱讀筆記--緒論和第二章(一部分)

R語(yǔ)言 pheatmap 包繪制熱圖(基礎(chǔ)部分)

R語(yǔ)言pheatmap包繪制熱圖進(jìn)階教程

使用PicGo和gitee搭建圖床

組間分析—T檢驗(yàn)昆咽、R語(yǔ)言繪圖

Rmarkdown的xaringan包來(lái)制作PPT

htlm文件部署到個(gè)人網(wǎng)站

感謝你的閱讀!Q栏Α掷酗!你的點(diǎn)贊關(guān)注轉(zhuǎn)發(fā)是對(duì)我最大的鼓勵(lì)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窟哺,一起剝皮案震驚了整個(gè)濱河市泻轰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌且轨,老刑警劉巖浮声,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虚婿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡泳挥,警方通過(guò)查閱死者的電腦和手機(jī)然痊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)屉符,“玉大人剧浸,你說(shuō)我怎么就攤上這事〈V樱” “怎么了唆香?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)吨艇。 經(jīng)常有香客問(wèn)我躬它,道長(zhǎng),這世上最難降的妖魔是什么秸应? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任虑凛,我火速辦了婚禮碑宴,結(jié)果婚禮上软啼,老公的妹妹穿的比我還像新娘。我一直安慰自己延柠,他們只是感情好祸挪,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著贞间,像睡著了一般贿条。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上增热,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天整以,我揣著相機(jī)與錄音,去河邊找鬼峻仇。 笑死公黑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的摄咆。 我是一名探鬼主播凡蚜,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼吭从!你這毒婦竟也來(lái)了朝蜘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涩金,失蹤者是張志新(化名)和其女友劉穎谱醇,沒(méi)想到半個(gè)月后暇仲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡副渴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年熔吗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片佳晶。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡桅狠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出轿秧,到底是詐尸還是另有隱情中跌,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布菇篡,位于F島的核電站漩符,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏驱还。R本人自食惡果不足惜嗜暴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望议蟆。 院中可真熱鬧闷沥,春花似錦、人聲如沸咐容。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)戳粒。三九已至路狮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蔚约,已是汗流浹背奄妨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苹祟,地道東北人砸抛。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像苔咪,于是被迫代替她去往敵國(guó)和親锰悼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容