-
Notifications
You must be signed in to change notification settings - Fork 16
MCMC
In addition to the point estimates afforded by optimization, celeri also provides uncertainty
quantification via Markov Chain Monte Carlo (MCMC), which returns samples from a posterior probability
distribution over the parameters of interest, governed by a probabilistic model. In this model, parameters
of interest
The geophysical forward model in celeri maps the geodynamic parameters (state vector)
where each station contributes two observed components (east and north).
The state vector
The velocity components are built from linear maps celeri.
At
We model this noise with a shared variance parameter
The MCMC sampler generates samples of values for
Each deformable block has a homogeneous 2D strain tensor with 3 parameters. We use a standard normal prior on the strain parameters after rescaling the operator columns. The contribution to station velocities is linear:
Each block rotates about the Earth’s center (3 parameters), again with a standard normal prior after rescaling. The contribution has two parts:
- Station velocities from rigid rotation:
$v_\text{rot} = O_\text{rot} \, \theta_\text{rot}$ . - Slip along faults induced by rotation, mapped through Okada dislocation
operators
$v_\text{rot,okada} = O_\text{rot,okada} \, \theta_\text{rot}$ .
Point sources of pressure at fixed locations, with a scalar intensity parameter each. Again, we use standard normal prior after rescaling. The contribution to the velocity is again linear:
On meshed fault segments, we want to model how much of the kinematically expected slip rate (from rigid block rotations) is actually accommodated elastically at the fault.
A Gaussian Process is a stochastic process from which any finite collection of random variables drawn is distributed as a multivariate normal. Read more here.
Define the coupling ratio field
where
This GP is discrete, taking one value for each triangle of the mesh. For
for lengthscale
We use separate GPs for each fault. At each fault, we compute one GP for the strike-slip component and one for the dip-slip component, and assume independence between them.
The GP covariance matrix
and truncate after
with coefficients
The elastic slip rate field on the fault surface is then
This field is then mapped through a linear operator to yield predicted velocities at GPS stations:
Depending on the model configuration, we also support modeling the elastic slip field as a GP, instead of a coupling ratio. In this case, the elastic slip field itself is given a GP prior and eigen-expansion:
Which formulation is used is configured in the model setup, and can differ by fault or dip/strike component if desired.
Physically, coupling ratios (or elastic slips) should fall within plausible limits, e.g.
or some more general
Since the MCMC sampler requires an unconstrained and differentiable probability density, we use smooth transforms of
where
In addition to the "hard" constraints imposed on the coupling field, we'd also like to be able to impose "soft" regularization on some quantities of interest, as in the SQP formulation. In a probabilistic model, this can be done by expanding the likelihood function
and vice versa for an upper bound, degrading rapidly (as governed by
To all other slip rates without observation-based credible intervals, we impose a student's t likelihood with
We also impose soft zero-slip boundary conditions on the meshes via a pseudo-observations of 0 slip on triangular elements on mesh boundaries. That is, as in the framework above, we add terms
The complete likelihood is
Since all inequality constraints (e.g. on slip rates or coupling ratios) are enforced by bounding transforms rather than hard truncation, the posterior density is smooth and differentiable, so we can use gradient-based MCMC.
The posterior is sampled with HMC/NUTS (via PyMC + nutpie). Since there are highly correlated parameters (e.g. slip on adjacent fault segments), we use the diagonal plus low-rank mass matrix adaptation scheme from nutpie.
The posterior predictive mean celeri’s state vector format for downstream analysis.
Individual draws can be accessed as estimation.mcmc_draw(chain_idx, draw_idx).
Introduction
Constructing inputs
- Input overview
- Using celeri_ui
- Segment files
- Station files
- Config file
- Mesh parameter descriptions
- Geodetic data files
- Triangular elements
- Meshing subsets of segments
- Fixing meshes
Running celeri
Analyzing results