Hello, I am trying to implement an MCMC Random-walk Metropolis-Hastings calibration procedure that includes gaussian model discrepancy. I’ve already worked with the RandomWalkMetropolisHastings
class before without any trouble but I am now encountering an error I don’t understand. I am using OT1.23.
I have three calibration parameters (\theta, \sigma^{2}_{\delta}, \xi_{\delta}), the last two correspond to hyperparameters in the discrepancy covariance.
The supports of my distributions are the following :
support = ot.Interval([0.0, 1.0, 0.0], [15e-4, 100, 1e-5])
I use the following uniform proposal :
proposal = ot.ComposedDistribution([ot.Uniform(-step, step) for step in step_sizes])
with step-sizes :
step_sizes = [1e-3, 10, 1e-4]
When I try calling the ot.RandomWalkMetropolisHastings
class with this proposal I get the following error :
TypeError: InvalidArgumentException : The range of the proposal distribution does not contain the origin with enough probability
I don’t understand what this error represents, I have tried tweaking with the step-sizes without any success. Since the origin is contained in my proposal’s supports, I really don’t see where the error comes from. My questions are the following :
- Why do we have an error here?
- What are the theoretical reasons for having apparently “stagnant” random walks (at least that’s how I understand that it contains the origin) with strong probability for the MCMC to work?
- (Partially related) If someone has experience with bayesian calibration using model discrepancy: is there any rule of thumb for the proposal distribution in the hyperparameters?
Thank you very much for your help!
Edgar