2016-12-21 2 views
1

Я работаю с моделированием распределения видов с помощью GLM. У меня есть (Южная Америка) данные для Caiman crocodilus вид из GBIF (http://www.gbif.org/species/5846514) и биоклиматические данные от Worldclim (http://worldclim.org/current). Я пытаюсь запустить GLM для моделирования распределения видов (с dismo пакета):GLM, возвращающее отрицательное значение для порога (обрезание) (в R)

modelGLM = pres ~ bioclim_10 + bioclim_11+ bioclim_16 + I(bioclim_16^2) + bioclim_17 
GLM <- glm(modelGLM, family=binomial(link=logit), data=PresBackTrainRaw) 
projecaoSuitability = predict(predictors, GLM, type='response') 

Until здесь, все выглядит нормально, но когда я пытаюсь получить порог (светотеневой), отрицательное значение возвращается:

library(dismo) 
> evaluation=evaluate(p=presencesTest,a=backgroundTest,m=GLM,x=predictors) 
> thresholdValues=threshold(evaluation,'spec_sens') 
> thresholdValues  
> [1] -2.578797 

Поскольку выход GLM (с типом = «ответ») находится в диапазоне от 0 до 1, отрицательный порог не имеет смысла. Кто-то может помочь мне понять, что не так?

+2

Вы уверены, что этот расчет выполняется по шкале вероятности, а не по шкале logit/log-odds? –

+1

от '? Оценки':' оценка', похоже, имеет аргумент '...' для 'прогноза'. попробуйте добавить 'type = 'response'' – user20650

+1

Да! Это обеспечило правильные пороговые значения. Большое спасибо! – user3369932

ответ

2

Решение (обеспечивается user20650):

Добавить type='response' в evaluate:

библиотека (dismo) оценки = оценить (р = presencesTest, а = backgroundTest, т = GLM, х = предикторы , тип = 'ответ') thresholdValues ​​= порог (оценка, 'spec_sens')
thresholdValues ​​
[1] 0,07042211

Смежные вопросы