【问题标题】:How to use Dismo's predict() with a maxent model based on a dataframe如何将 Dismo 的 predict() 与基于数据框的 maxent 模型一起使用
【发布时间】:2017-06-19 14:14:34
【问题描述】:

我试图弄清楚 dismo 的 predict 函数如何根据以“x”作为数据框而不是栅格图层构建的模型来运行。我已经使用栅格图层成功运行了模型,并以此为基础制作了预测地图。

我的模型构建如下;

library(dismo)
model <- maxent(x = sightings.data, p = presence.vector)

其中Sightings.data 是一个数据框,其中包含目击事件的GPS 位置,然后是这些时间和位置的条件。 Presence.vector 是一个向量,指示行是存在点还是背景点。

我正在寻找答案;

  • 在给定这种类型的模型的情况下,要提供哪些参数来预测
  • predict() 能够从这样的模型中提供什么

我已经成功运行了使用栅格图层的模型,并以此为基础制作了预测地图。

predict() 的帮助文件不是特别详细,“使用 R 进行物种分布建模”没有成功涵盖该主题(示例仅列出“无法运行此示例,因为 maxent 不可用”输出)。

我尝试使用仅包含我有栅格图层的变量的数据框进行建模,并尝试像使用栅格构建的模型一样进行预测,但出现以下错误;

 Error in .local(object, ...) : missing layers (or wrong names)

我已确保数据框列名和栅格图层具有相同的名称,但不包括强制性的纬度和经度列;

 names(raster.stack) <- colnames(sightings.data[3:5])

【问题讨论】:

    标签: r predict maxent dismo


    【解决方案1】:

    我从以下论文Oppel at al 2012 的代码中找到的方法表明,当提供输入变量的数据框时,dismo 的预测可以产生相对值。

    > predictions <- predict(model, variables)
    > str(predictions)
      num [1:100] 0.635 ...
    

    我仍在寻找一种简单的方法来根据这些预测值创建预测分布栅格图。

    【讨论】:

      【解决方案2】:

      如果您提供 dismo::maxent 数据框,该函数会将第一列识别为经度,将第二列识别为纬度。如果数据不符合这种格式,则该功能将不起作用。

      【讨论】:

        猜你喜欢
        • 2021-03-24
        • 1970-01-01
        • 2021-12-20
        • 1970-01-01
        • 1970-01-01
        • 2014-06-25
        • 1970-01-01
        • 2012-07-15
        • 2021-01-25
        相关资源
        最近更新 更多