biomodhub / biomod2

BIOMOD is a computer platform for ensemble forecasting of species distributions, enabling the treatment of a range of methodological uncertainties in models and the examination of species-environment relationships.
87 stars 22 forks source link

Response Curve #493

Open ShreePoudel0 opened 2 months ago

ShreePoudel0 commented 2 months ago

Hello again. I am trying to plot response curve of contribution of predictor variable in ensemble model. As we can see in the figure, shouldn't the value range between 0-1. Atleast thats the case when generating response curve for individual models.
image.

Also i tried using this code for generating response curve

b <- bm_PlotResponseCurves( myBiomodModelOut, models.chosen = get_built_models(myBiomodModelOut, run = 'RUN1'), new.env = get_formal_data(myBiomodModelOut, "expl.var"), show.variables = c('bio1'), fixed.var = "mean", do.bivariate = FALSE, do.plot = TRUE, do.progress = TRUE )

abc <- b$tab

abc %>% group_by(expl.name) %>% ggplot(aes(expl.val, pred.val))+ geom_smooth() + facet_wrap(~ expl.name, scales = "free_x")

and i have same problem like the pred.val ranges between 0 - 0.1 whereas when the result from bm_plotresponsecurve has value upto 1. image

image

MayaGueguen commented 2 months ago

Hello Shree,

Here are some insights that might help you understand what's going on and interpret your response' curves :sun_with_face:


For response curves, you want to check how the predicted value evolves in function of one variable. So when moving along the range of your variable of interest, the other variables are fixed to an average or median value so the variation you see in predicted value is only due to the variation in your variable of interest.

:warning: Keep in mind that this is not a perfect way to watch how your predictions evolve, as the more variables you have, the more the signal might be smoothed / hidden. Let's take your bio12 variable for example. What the curve means is that :

On the contrary, if you look at elevation, it is more determinant (but less precise) as when all other 10 variables are fixed to their mean, predictions are higher as soon as elevation is above 800m.

:information_source: You might want to combine this information with variables' importance, to have another insight about which variables impact the most your predictions.


As for your second graphic, you apply a smooth function to all response' curves obtained for bio1 variable across all single models :

Hope it helps, Maya