2016-08-10 1 views
2

J'ai utilisé le paquet 'raster' pour faire une carte de probabilités avec une variable de réponse binomiale. Le problème est que lorsque je trace les résultats, mes valeurs de raster prédictives vont de -15 à 5 par opposition à 0-1. J'ai utilisé le même code que dans Hijmans, Elith. 2016. «Modélisation de la distribution des espèces avec R» (p.34). Ils obtiennent la gamme de probabilité de 0 à 1 pendant que je continue à obtenir des valeurs étranges. Qu'est-ce que je fais de mal? Voici un exemple reproductible avec les 50 premières lignes de mes données.La plage de raster prédictive va au-delà de 0-1 pour les données binomiales (package 'raster')

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) 

Voici ce que je reçois: prediction raster

Je cherchai en ligne à fond mais ne peut pas obtenir ce qui ne va pas.

Répondre

3

Par défaut predict vous donne des résultats sur le lien (logit) échelle plutôt que la réponse (probabilité) échelle: il suffit d'utiliser type="response" pour obtenir des prédictions sur l'échelle de probabilité.

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

enter image description here

+0

Merci Ben !!! – Lybica

+0

Alors que le sentiment est apprécié, StackOverflow déprécie [en utilisant des commentaires pour dire "merci"] (http://meta.stackoverflow.com/questions/258004/should-thank-you-comments-be-flagged?lq=1) ; Si cette réponse vous a été utile, vous pouvez l'augmenter (si vous avez une réputation suffisante), et dans tous les cas, si elle répond à votre question de manière satisfaisante, vous êtes encouragé à cliquer sur la coche pour l'accepter. –