r - 二项式数据的预测栅格范围超出 0-1(包 'raster')

标签 r gis raster prediction glm

我使用“栅格”包制作了具有二项式响应变量的概率图。问题是,当我绘制结果时,我的预测栅格值范围为 -15 到 5,而不是 0-1。我使用了与 Hijmans, Elith 中相同的代码。 2016.“使用 R 进行物种分布建模”(第 34 页)。他们得到的概率范围从 0 到 1,而我不断得到奇怪的值。我做错了什么? 这是我数据前 50 行的可重现示例。

install.packages("lme4")
install.packages("raster")
install.packages("rgdal")

library("lme4")
library("raster")
library("rgdal")

# my data
data = structure(list(colorSymbol = c(1L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 
1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 1L, 0L, 1L, 0L, 1L, 0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 
0L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 1L), bio_2 = c(75L, 168L, 
57L, 127L, 120L, 100L, 97L, 97L, 97L, 97L, 94L, 102L, 102L, 89L, 
89L, 102L, 96L, 97L, 92L, 100L, 97L, 97L, 97L, 96L, 97L, 95L, 
97L, 105L, 96L, 92L, 96L, 97L, 97L, 88L, 95L, 95L, 95L, 99L, 
96L, 97L, 97L, 100L, 97L, 96L, 94L, 94L, 94L, 94L, 98L, 94L), 
bio_3 = c(24L, 36L, 32L, 57L, 31L, 31L, 32L, 32L, 32L, 32L, 
31L, 33L, 31L, 32L, 32L, 33L, 32L, 31L, 32L, 33L, 32L, 32L, 
32L, 32L, 32L, 32L, 32L, 34L, 31L, 32L, 32L, 32L, 32L, 32L, 
32L, 32L, 32L, 31L, 32L, 32L, 32L, 34L, 31L, 32L, 31L, 31L, 
31L, 31L, 32L, 32L)), .Names = c("colorSymbol", "bio_2", 
"bio_3"), row.names = c(NA, 50L), class = "data.frame")
# model
bio2 = data$bio_2
bio3 = data$bio_3
colorSymbol = data$colorSymbol
model = glm(colorSymbol ~ bio2 + bio3, family = binomial)
# predictors
w = getData('worldclim', var='bio', res=10)
rasstack <- stack(w$bio2, w$bio3)
p <- raster::predict(rasstack, model)
plot(p)

这是我得到的:prediction raster

我在网上彻底搜索过,但找不到问题所在。

最佳答案

默认情况下,predict 为您提供链接(logit)尺度而不是响应(概率)尺度的结果:只需使用type="response" 以获得概率尺度上的预测。

p <- raster::predict(rasstack, model, type="response")
plot(p)

enter image description here

关于r - 二项式数据的预测栅格范围超出 0-1(包 'raster'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38880694/

相关文章:

java - 将精确距离添加到 GPS 坐标

php - Apache HTTP 服务器 (PHP/MySQL) 中的 GIS 应用程序

r - 如何在 R 中堆叠光栅文件?

r - 按组和间隔坐标折叠 data.frame

使用数据帧上的循环将 R 中的 NA 替换为 0

R 并行处理与 Xeon Phi,最小的代码更改?

R,加回拟合值plm(),拟合值小于回归中的观测值

java - 使用给定经纬度的谷歌地图计算距离

r - 如何创建 SpatRaster (terra) 的可重现示例?

r - 在r中的栅格层上绘制空间点