I want to use emcee to minimise a function, and want to vary 3 priors a,b,c
over a log-uniform distribution of many orders of magnitude, and 2 more priors d, e
over a uniform distribution.
What would I need to return in the log_prior(theta)
function?
If they were all uniform, my function would be:
# Define the prior function for emcee
def log_prior(theta):
a,b,c,d,e = theta
if 0.01 <= a <= 10000000000 and 0.01 <= b <= 10000000 and 0.00001 <= c <= 10000 and 0.01 <= C <= 10000000000 and 2 <= e <= 100 and 30 <= f <= 700:
return 0.0
return -np.inf
but how do I need to change to incorporate the log-uniform distribution for some? would I need to return something like
log_prior_a + log_prior_b +
..?
Thank you so much in advance!