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.
91 stars 22 forks source link

how to read EMcv graph #345

Closed lindenozomi closed 1 year ago

lindenozomi commented 1 year ago

Hi,

I’m doing EMcv, but I’m not sure what value would be considerd a high variability, I know high number would indicate that, but I’m not sure how the value are graphed. this is one of the result I have. online it mentioned any value above 2 would be considered high, however it is harder to tell on a scale of 0-1000 and was wondering if the value was maybe adapted to this scale.

Graphic_FutureEM_ML_585_2100_GFDL.pdf

Thank you in advance

MayaGueguen commented 1 year ago

Hello there,

Graphics in biomod2 are quite generic and try to adapt to most situations, but sometimes need not to be taken as the Truth. Here, you asked for mean ensemble model, and CV, based on 2 evaluation metrics. Mean ensemble model returns predictions (hence between 0 and 1000), while CV returns variability values. The automatic plot function render all these results on the same plot and therefore on the same scale, but they are not supposed to be on the same scale. To explore CV results, you need to plot them separately.

Hope it helps,

Maya

LindeNozomiLeo commented 1 year ago

Hi,

Thank you, but how do I plot it separately? I tried using plot(FutureEM, em.algo= "EMcv") however this still plots them the same way as before.

MayaGueguen commented 1 year ago

You need not to use the biomod2 plot function associated with BIOMOD.ensemble.models.out objects. But rather to load directly the raster map object and plot with usual plot function.

You can use the get_built_models onto your BIOMOD.ensemble.models.out object to get the full name of your EMcv model. And then use the get_predictions function with the full.name parameter.

Another option is to directly load the projections from the .img or .tif file contained in your projection folder, keep only the layer containing your EMcv model, and plot it.

Hope it helps, Maya

LindeNozomiLeo commented 1 year ago

Hi!

are either of these possible when the code has been run on a server? I'm trying to use the BIOMOD.ensemble.models.out, however it is not functioning since I cannot seem to load it correctly into my local R

LindeNozomiLeo commented 1 year ago

like could you tell me how to only keep the layer containing the Emcv file from the directly loaded .tif format?

Thank you in advance!

LindeNozomiLeo commented 1 year ago

hey! (for everyone following). I think I managed by using raster::stack to load the .tif file and then plotting. now I'm wondering though what would be considered a low EMcv, to make some interpretations regarding the uncertainty of the models. I understand that below 1 would indicate a low variability. but also know that this value because sensitive to small changes when the mean is around zero, which will be the case in certain areas of the map where the species is unlikely to occur. this results in the scale to be up to 200 sometimes and therefore it is hard to tell the difference between anything below and above 1

MayaGueguen commented 1 year ago

Glad that you managed to load the file !

As for the scale, EMcv computes the coefficient of variation between predictions. It is the ratio between standard deviation and mean, so it is a dimensionless number. It represents an estimation of how much there is variability around the mean value. Meaning in this context : the closer to 0, the more the models agree between them. The higher, the more they diverge (the more dispersion there is around the mean probability of presence across models). It is here multiplied by 100, to be presented as a kind of percentage.

Hope it helps :eyes:

Maya