predictor responses of the"single-predictor" models in ENmeval

378 views
Skip to first unread message

Ione Arbilla

unread,
Nov 4, 2021, 2:30:02 AM11/4/21
to Maxent

I have a MaxEnt model implemented in ENMeval package using maxent.jar algorithm in R. The dismo package has the convenient function response to plot predictors' responses as the ones provided by the model html output, in R plotting style.

Now, I would like to plot the predictor responses of the"single-predictor" models likewise (as the ones you can get in the HTML output when using maxent software). 

I have tried 3 paths so far,

a) the response function has the "at" function to indicate at what level the other variables should be. Since the interest is to disregard the rest of the variables I have chosen at=NULL, but the output just looks like a smooth version of when I chose other levels for the variables like mean or median, so I am assuming this is not it.

b)I also tried to run ENMeval with a single environmental variable but it is not working either. Why is that so? It is not possible to run ENMEval with only one environmental variable?

c) my last option has been to create a dummy raster variable (all the values are equal) and include it in the stack and then run the response function, but I am not sure about how correct this approach is.

has anyone been able to get this output?

Cheers,

Ione


Nick Freymueller

unread,
Nov 9, 2021, 12:56:35 AM11/9/21
to max...@googlegroups.com
Hi Ione,

I've recently run into a similar response curve issue as well (it's with dismo instead of ENMeval, but since ENMeval wraps around dismo to the best of my knowledge, this is probably relevant). I think it's ultimately a difference between what the maxent.jar file creates and what dismo is doing. I only discovered this recently by playing around with the dismo source code. I think the dismo::response() function is likely the culprit.

dismo (and everything that wraps around it) does things slightly differently to the maxent.jar file. It gives you the response curves it gives you for each variable by setting every other variable to the mean/median/whatever value of the other variables using the "at" argument. I'm guessing ENMeval also just wraps around this. In one case, the dismo response curves gave me wildly different response curves (i.e., concave-up) than anything dismo gave me. It looked like it averaged the two response curves that the maxent.jar file gave me in the HTML format (with every variable in the model + with only the one variable in the model). I only got this for a variable that was reasonably highly correlated with another (r = -0.66), so that might be worth looking into. For a given variable, if the two response curves in the HTML document look markedly different from each other, that's likely the problem. 

I'm not sure this is ultimately an ENMeval-level fix, but what you suggested for part c seems reasonable. That's basically doing what dismo::response() does. I'm not sure why ENMeval doesn't seem to work with only one variable.

Hope this is helpful!

Cheers,
Nick

--
You received this message because you are subscribed to the Google Groups "Maxent" group.
To unsubscribe from this group and stop receiving emails from it, send an email to maxent+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/maxent/e70caec9-c9d8-42f2-bb77-aa8b6c7315e3n%40googlegroups.com.


--
Nicholas A. Freymueller, M.S.
Ph.D. Student
University of Copenhagen/University of Adelaide
Twitter: Smilodontology

Jamie M. Kass

unread,
Jan 9, 2022, 5:53:49 AM1/9/22
to Maxent
Just a note that I discussed this topic in a different thread: https://groups.google.com/u/2/g/maxent/c/LjyYh0uEcMk
In sum, ENMeval does not output marginal response curves, but the vignette does tell you how to do this with dismo. Nick is right about what dismo does, but not sure about the discrepancy he found with maxent.jar. The Java software outputs several different response curve options, but I thought one of them was identical to what dismo outputs. Although Maxent is able to make accurate predictions given a set of correlated variables by tossing some out or reducing their influence via regularization, there are certainly issues with using highly correlated variables when you are trying to interpret response curves and variable importance. Just something to keep in mind.

Jamie Kass
JSPS Postdoctoral Researcher
Okinawa Institute of Science and Technology Graduate University
Reply all
Reply to author
Forward
0 new messages