Hi all,
I am trying to estimate model parameters for a very computationally expensive glaciological model by using two sets of remote observations at the same time (sort of multi-objective).
Related to that I have two questions:
a) Am I correct in assuming that I do not need to create one big DensityDist
and logp
function by hand, as PyMC automatically handles it if I create two likelihood entries for the respective observations? See e.g., below where mu_mb
and mu_tsl
is a pm.Deterministic
that comes from my model simulation using the priors as input and the sigma’s refer to the uncertainties that are provided in the observed data (geod_data and tsl_data).
mb_obs = pm.Normal("mb_obs", mu=modmb, sigma=geod_ref['err_dmdtda'], observed=geod_data)
tsl_obs = pm.Normal("tsl_obs", mu=mu_tsl, sigma=tsla_obs['SC_stdev'], observed=tsl_data)
b) One of the two observations is significantly easier to match so I would like to try setting weights to the logp function. Can I just change the likelihood to e.g.:
mb_obs = pm.Potential("mb_obs", (weight * pm.logp(pm.Normal.dist(mu=modmb, sigma=geod_ref['err_dmdtda']), observed=geod_data))
Sorry for posting multiple questions at once, but I thought they are related to each other.
Cheers!