我如何在 R 中使用贪婪的位点选择算法来最大化未代表的物种丰富度?

问题描述 投票:0回答:0

我想使用“贪婪”算法来选择地点,以最大化未代表性的物种丰富度。选择的第一个站点将是具有最高丰富度的站点,而第二个站点将是具有最高的未代表性(即尚未选择)丰富度的站点,依此类推。 如果两个地点具有相同的未代表性的丰富度,那么将选择具有最稀有物种的地点。

我打算使用的基于丰富度的贪婪算法的工作原理如下: 选择丰富度(尚未呈现的物种数量最多的站点), 代表性(站点支持站点中总代表性最低的物种)打破了联系,随机打破了进一步的联系。

输入数据将是物种丰度矩阵(行=位点,列=物种),输出是要选择的位点的排名列表。

虽然我在出版物中找到了一系列类似贪婪算法的描述, 我还没有找到可以做到这一点的可用软件或 R 包/代码。

我发现的最接近的是“ausplotsR”包中的函数“optim_species”,它使用一系列多样性指标来优化。然而,在此函数的输出中,我获得了站点编号以及增加站点编号如何影响所述指标,而无需获取每个站点的标识。请注意,函数输出包括一个排名的站点列表,但没有说明它是针对哪个多样性指标计算的。

请参阅以下内容:

# load package
library(ausplotsR)

# create test matrix
species_matrix <- matrix(
  c(1, 0, 1, 1, 0, 0,
    0, 0, 1, 0, 0, 0,
    0, 1, 1, 0, 0, 0,
    0, 1, 0, 0, 1, 0,
    0, 0, 0, 0, 0, 1),
  nrow = 5,
  ncol = 6,
  byrow = TRUE,
  dimnames = list(c("Site 1", "Site 2", "Site 3", "Site 4", "Site 5"), c("Species 1", "Species 2", "Species 3", "Species 4", "Species 5", "Species 6"))
)

# optim_species' test
optim_species(species_matrix, n.plt = 5, frequent = FALSE) 

在这个简单的例子中,optim_species 提供了一个排名站点的列表,这些站点确实最大化了丰富性, 但根据我的数据集(18 个站点中 130 个物种的物种丰度),排名站点并不一定会优化丰富度。

有没有办法获取此包中每个多样性指标所列出站点的身份?或者是否有其他替代方案可以产生类似的结果?

r algorithm selection greedy
© www.soinside.com 2019 - 2024. All rights reserved.