Greetings, fellow greta
users who spend lots of time tuning the number of leapfrog steps (the Lmin
and Lmax
arguments in hmc()
) and their stepsize (epsilon
).
Among datasets, I have been using L
as few as ~10 to as many as ~100, and stepsizes epsilon
ranging from the default 0.1 to 0.001. Most if not all of the time, I have no idea what I am doing The guidelines in the helpfiles and this forum, and @nickās scattered suggestions generally served me well (search ātuneā, āleapfrogā, āstepsizeā etc. in the forum). There are many technical papers on tuning these parameters, but they mostly point out that static HMC (what we have in greta
currently) demands fine tunings and then sell NUTS as an easier alternative.
I really like greta
so I need to befriend the static HMC samplerā¦ but for someone like me, itās really hard to imagine that a stepsize actually it. Does it have a unit? For example, if I scale my response and/or explanatory variables, that changes the scale of my coefficients, so do I also need to change the step size and number (since the explored parameter space has a different scaleā¦)? Or is this unnecessary, because the diag_sd
also rescale the posterior spaceā¦ ??? In other words, I donāt know what Iām doing because I donāt know what a stepsize of 10 means relative to the scales of my parameter and dataā¦ is 10 too large or too small?
Anyway, not asking for a definite guide here (because they is noneā¦), but just thought to gauge how people usually tune their HMC sampler day to day. I usually increase the number of steps incrementally by 5, with or without decreasing stepsize at the same time. Still donāt know what Iām doing.