^_^简约而不简单!欢迎来到梅卫平の阅览室!您是第 位访客^_^

🌱 VIP绿色通道

(一)常用检索: 1. JCR-IF查询路径一, 路径二, 路径三      2. CiteScore-IF查询     3. SCI期刊检索     4. 中科院分区查询路径一, 路径二     5. SSCI检索     6. ESCI检索     7. EI检索 (备用)     8. ISTP检索
(二)备用网址: 1. 梅斯SCI期刊智能查询     2. 论文被SCI收录情况查询方法     3. CSCD期刊检索     4. 中国知网检索     5. PubChem     6. ChemSpider     7. 科研者之家     8. 爱科研
(三)google/sci-hub镜像: 1. 谷歌学术镜像一, 镜像二     2. Sci-Hub有效域名一, 域名二     3. scihub_button (GitHub Link)     4. LibGen英文Book下载
(四)ESI检索&Nature Index查询: 1. ESI查询      2. Nature Index查询      3. Nature Index Journal列表
(五)基金查询入口: 1. 国自然官方查询     2. 国自然梅斯查询     3. 国自然科学网查询

在R中正确运行“系统(层次)聚类分析”


(本文于 2016-7-5 15:43 首发于 “科学网”)

Hierarchical Cluster Analysis in R or Rstudio

第一步:导入数据 ex.

1
2
library(vegan)
data(dune)

第二步:将原始转换成“距离”矩阵 #假设数据不需要进行标准化

1
2
3
4
5
6
7
8
# library(vegan)
distance.ex<-vegdist(dune,method="euc",na.rm=TRUE)

#计算距离的method (Dissimilarity index)包括:

#"manhattan", "euclidean", "canberra","bray", "kulczynski", "jaccard", "gower", "altGower", "morisita", "horn","mountford", "raup" , "binomial", "chao", "cao" or "mahalanobis".

#其中"bray"是指 "Bray–Curtis [Dissimilarity] index"

第三步:聚类分析

1
2
3
4
5
6
7
8
9
hclust.ex <- hclust(distance.ex,method="ward.D2")

#聚类的方法包括:

#"ward.D", "ward.D2", "single", "complete", "average" (= UPGMA), "mcquitty"(= WPGMA), "median" (= WPGMC) or "centroid" (= UPGMC).

# 注意一般软件ward算法相对应的hclust中为ward.D2,小心用错

# agnes(*, method="ward") corresponds to hclust(*, "ward.D2").

第四步:作树状图

1
2
plot(hclust.ex,hang=-1)    
# hang取负数时,树状图y轴 从0 开始。


#补充一

完整地写个bray-curtis距离的代码:

1
2
3
4
5
library(vegan)
data(dune)
distance.bray<-vegdist(dune,method="bray",na.rm=TRUE) # bray 距离
hclust.bray<- hclust(distance.bray,method="average") # UPGMA 聚类
plot(hclust.bray,hang=-1)

见下图,y轴的 Height 为 “Bray-Curtis不相似性百分比”


Q & A

(1)聚类方法”centroid” 相对应使用的距离为平方欧式距离 squared Euclidean distances. 如:hc1ust.centroid <- hclust(dist(cent)^2, method = “cen”)

(2)聚类方法”ward.D2” 相对应使用的距离为欧式距离 “Euclidean” distances.

(3)聚类方法”average”(=UPGMA) 相对应使用的距离为 “bray”(=Bray-Curtis) distances.


#补充二

1
#{vegan} package 内还包含以下应用程序:ANOSIM,BIO-ENV,metaMDS(=nMDS),CCA,RDA,SIMPER,vegdist等

参考:

  1. vegdist()应用代码 https://cran.r-project.org/web/packages/vegan/vegan.pdf

  2. hclust()应用代码 https://stat.ethz.ch/R-manual/R-devel/library/stats/html/hclust.html

  3. 不同聚类方法的比较 https://cran.r-project.org/web/packages/dendextend/vignettes/Cluster_Analysis.html

  4. 实例 http://ecology.msu.montana.edu/labdsv/R/labs/lab13/lab13.html



<已有 次阅读>


由于本文作者水平有限,文中如有错误之处,欢迎大家批评指正!

① 本文仅代表作者个人观点,不代表任何其它立场,欢迎交流合作!

② 转载与分享请注明:本文源于 http://meiweiping.cn

^_^ 本文字数统计:513 字