Skip to content

Program Methodology

Paul Miles edited this page Apr 15, 2019 · 5 revisions

The pymcmcstat package contains programs useful for running Markov Chain Monte Carlo (MCMC) simulations; however, it must be noted that the pymcmcstat package makes specific assumptions regarding the statistical model being evaluated. In general, it assumed that the statistical model has the form

\Upsilon_i = f_i(Q)+\varepsilon_i ;,; i = 1, ... , n

where \Upsilon_i, \varepsilon_i, and Q are random variables representing measurements, measurement errors, and model parameters, respectively. The parameter-dependent model response is denoted by f_i(Q). We assume that the modeling and measurement errors \varepsilon_i are unbiased and independent and identically distributed (iid), i.e., \varepsilon_i \sim \mathcal{N}(0,\sigma_i^2).

We note that Bayes' Theorem for inverse problems can be expressed as

\pi(q|v_{obs})= \frac{\pi(v_{obs}|q)\pi_0(q)}{\pi(v_{obs})} = \frac{\pi(v_{obs}|q)\pi_0(q)}{\int_{\mathbb{R}^p}\pi(v_{obs}|q)\pi_0(q)dq}

where we have assumed that the p model parameters Q have a known, but potentially noninformative, prior density \pi_0(q). Note, q and v_{obs} are realizations of the model parameters (Q) and observations (\Upsilon_i), respectively. Bayes' Theorem yields the posterior density \pi(q|v_{obs}) of Q, given the measurements v_{obs}.

As a result of the assumptions made regarding observation errors, this leads to a very specific form of the likelihood function in Bayes' Theorem. In this case we find that the likelihood function is

\pi(v|q) = L(q,\sigma^2|v) = \frac{1}{(2\pi\sigma^2)^{n/2}}e^{-SS_q/2\sigma^2}

where

SS_q = \sum_{i=1}^n[v_i-f_i(q)]^2

is the sum-of-squares error. This is the only likelihood function currently available in the pymcmcstat package. In practice this is a reasonable assumption to make for many real world applications, which makes pymcmcstat still useful for a wide array of scientific and engineering problems. However, if a more customizable likelihood function is desired, user's are recommended to consider alternative MCMC packages such as PyMC3.

For more details regarding parameter estimation from a Bayesian perspective, please consider Chapter 8 of the following resource:

  • Smith, R. C. (2014). Uncertainty Quantification: Theory, Implementation, and Applications (Vol. 12). SIAM.

Clone this wiki locally