本文介绍 Bray Curtis Dissimilarity 的概念和计算方法。

Bray Curtis Dissimilarity(Bray-Curtis 相异度)是生态学中用来衡量不同样地物种组成差异的参数。

其定义和计算公式为:

$$BC_{ij}=1-2C_{ij}/(S_{i}+S_{j})$$

其中:

  • \(i\)\(j\) 是两个样地;
  • \(S_i\) 是样地 \(i\) 中物种的总数;
  • \(S_j\) 是样地 \(j\) 中物种的总数;
  • \(C_{ij}\) 在两块样地中每个物种的较少计数的总和。

简单的例子

有两个水族箱:

  • 一号:6条金鱼,7条孔雀鱼和4只螃蟹;
  • 二号:10条金鱼和6只螃蟹。

为了计算 Bray-Curtis,首先计算$C_{ij}$。金鱼两个地方都有,较少的是6;孔雀鱼只在一号中有,所以不能添加;螃蟹两个地方都有,较少的是4。因此,$C_{ij}=6+4=10$。

\(S_i=6+7+4=17\),而$S_j=10+6=16$。

因此,

$$BC_{ij}=1-(2*10)/(17+16)=0.39$$

Bray-Curtis Dissimilarity 的性质

其取值介于0-1之间。如果是0,则两个样地共享所有相同的物种;如果是1,则它们不共享任何物种。

还有另外一个 Bray-Curtis index,其取值是 1 - Bray-Curtis dissimilarity。表示两个样地之间的相似程度。

适用情况

要计算 Bray-Curtis Dissimilarity,必须假设两个样地的面积或体积大小相同(与物种计数相关),否则需要在计算前调整计数。

R语言实现

vegan提供了vegdist来计算这个数值。

## 用 vegdist 重复上面的例子
df <- data.frame(goldfish=c(6,10),guppies=c(7,0),crab=c(4,6))
require("vegan")
## Loading required package: vegan
## Loading required package: permute
## Loading required package: lattice
## This is vegan 2.6-4
vegdist(df,method = "bray") # 这个值跟前面人脑计算的一致
##           1
## 2 0.3939394
## 计算群落数据
data("varespec")
## 计算不同样地两两之间的差异度
bc <- vegdist(varespec)

## 使用pheatmap做一个热图
pheatmap::pheatmap(bc,breaks = seq(0,1,0.01))

延伸阅读

vegdist的可用的方法(method = "bray")还包括 “manhattan”, “euclidean”, “canberra”, “clark”, “bray”, “kulczynski”, “jaccard”, “gower”, “altGower”, “morisita”, “horn”, “mountford”, “raup”, “binomial”, “chao”, “cao” or “mahalanobis”。

designdist可用来设计自己的差异度算法。

参考资料

  1. https://www.statisticshowto.datasciencecentral.com/bray-curtis-dissimilarity/
  2. ?vegdist

作者简介

Chun-Hui Gao is a Research Associate at Huazhong Agricultural University.

重复使用

Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The source code is licensed under MIT. The full source is available at https://github.com/yihui/hugo-prose.

欢迎修订

如果您发现本文里含有任何错误(包括错别字和标点符号),欢迎在本站的 GitHub 项目里提交修订意见。

引用本文

如果您使用了本文的内容,请按照以下方式引用:

gaoch (2018). Bray Curtis Dissimilarity. BIO-SPRING. /post/2018/10/17/bray-curtis-dissimilarity/

BibTeX citation

@misc{
  title = "Bray Curtis Dissimilarity",
  author = "gaoch",
  year = "2018",
  journal = "BIO-SPRING",
  note = "/post/2018/10/17/bray-curtis-dissimilarity/"
}