0

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!

0 Answers0