如何在 r 中计算 bray-curtis 相异度


Bray-Curtis 相异性是衡量两个不同站点之间相异性的一种方法。

它经常用于生态学和生物学中,以量化两个地点之间发现的物种之间的差异。

计算方法如下:

BC ij = 1 – (2*C ij ) / (S i + S j )

金子:

  • C ij每个地点发现的物种最低值的总和。
  • Si :第 i 个地点计数的样本总数
  • S jj点计数的样本总数

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中的余弦相似度

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注