如何在 r 中计算 bray-curtis 相异度
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 中计算其他相似性度量: