Bray-Curtis 相异性是衡量两个不同站点之间相异性的一种方法。
它经常用于生态学和生物学中,以量化两个地点之间发现的物种之间的差异。
计算方法如下:
BC ij = 1 – (2*C ij ) / (S i + S j )
金子:
C ij :每个地点发现的物种最低值的总和。
Si :在第 i 个地点计数的样本总数
S j :在j点计数的样本总数
Bray-Curtis 相异度始终介于 0 和 1 之间,其中:
0表示两个站点没有差异。换句话说,它们每种物种的数量完全相同。
1表示两个站点完全不同。换句话说,它们不共享任何同一类型的物种。
例如,假设一位植物学家出去计算两个不同地点的五种不同植物物种(A、B、C、D 和 E)的数量。
下表总结了她收集的数据:
使用这些数据,她可以计算 Bray-Curtis 相异度,如下所示:
通过将这些数字积分到 Bray-Curtis 相异度公式中,我们得到:
BC ij = 1 – (2*C ij ) / (S i + S j )
BC ij = 1 – (2*15) / (21 + 24)
BCij = 0.33
这两个位点之间的 Bray-Curtis 差异为0.33 。
以下示例显示如何在 R 中计算 Bray-Curtis 相异性。
示例:计算 R 中的 Bray-Curtis 相异度
首先,让我们在 R 中创建以下数据框来保存数据值:
#create data frame
df <- data. frame (A=c(4, 3),
B=c(0, 6),
C=c(2, 0),
D=c(7, 4),
E=c(8, 11))
#view data frame
df
A B C D E
1 4 0 2 7 8
2 3 6 0 4 11
我们可以使用以下代码来计算数据框中两行之间的 Bray-Curtis 相异度:
#calculate Bray–Curtis dissimilarity
sum( apply (df, 2, function (x) abs ( max (x)- min (x)))) / sum ( rowSums (df))
[1] 0.3333333
Bray-Curtis 结果是不同的0.33 。
这与我们之前手动计算的值相符。
注意:仅当数据框中的每一行代表一个单独的站点时,此公式才有效。
其他资源
以下教程解释了如何在 R 中计算其他相似性度量:
如何在R中计算Jaccard相似度如何计算R中的余弦相似度