r语言 - 如何将 Dismo 的 predict() 与基于数据帧的最大模型一起使用



我试图弄清楚dismo的预测函数是如何在以"x"作为数据帧而不是栅格图层构建的模型方面运作的。我已经使用栅格图层成功运行模型,并基于此制作了预测地图。

我的模型构建如下;

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

目击.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])

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

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

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

如果为dismo::maxent 提供数据帧,则该函数会将第一列识别为经度,将第二列识别为纬度。如果数据不遵循此格式,则该函数将不起作用。

在这种格式中,目击数据不需要包括GPS位置,因此您可以从sightings.data中删除x和y列。 然后,您可以运行模型,然后可以预测栅格堆栈,其栅格名称与目击事件中的名称相同。

预测正在您的栅格堆栈中查找 GPS 位置,我猜这些位置不存在。

最新更新