I’m working for a US government program that is developing a new process for generating maps of flooding hazards. I’d appreciate feedback on the Bayesian formulation below, particularly its separation of aleatoric and epistemic uncertainty.
The current process involves selecting a single historical storm as a representative of a 100-year rainfall event, running that rainfall data through a mechanistic flood simulation model, then designating all areas that experienced simulated flooding as within the 100-year floodplain. Apart from ignoring many sources of uncertainty, the main practical issue with this approach is that characterization of risk is binary. You’re either within the 100-year floodplain or not; there is no gradation in estimated hazards.
The new process we’re developing will estimate a flood hazard curve with an uncertainty band for every location in the map. This is a curve where flooding depth at that location is on the y-axis, and annual exceedance probability (AEP) is on the x-axis. The depth resulting from a 100-year flood is given by the curve’s value at an AEP of 1/100. (This information could also be expressed with a CDF, but the engineers are used to flood hazard curves.)
We first tried brute-force Monte Carlo simulation, but this strategy is too computationally expensive for wide-scale implementation. The brute-force approach would generate R=50 realizations of synthetic rainfall data, where each realization contains Y=2000 years, and each year contains N\approx10 large rainfall events. Aleatoric sources of uncertainty (e.g. rainfall event magnitude and location, antecedent moisture conditions) would vary from event to event, and a plausible set of mechanistic flood simulation model parameters \theta (derived from fitting the model to historical flooding event data) would be assigned to each realization to account for epistemic uncertainty. This process would yield R empirical flood hazard curves at each location and allow for simple estimation of uncertainty bands, but the cloud computing costs of running RYN 10-15 hour mechanistic flood simulations for every watershed in the US was prohibitive.
Our current objective is to find ways of approximating the output of brute-force Monte Carlo at a lower computational cost. Other people on the project team are testing strategies involving importance sampling and surrogate models; I’m developing a Bayesian model with Stan which can leverage output from a much cheaper mechanistic model for predicting river flowrates. Here’s an overview of my Bayesian approach:
First, any flood hazard curve can be expressed as a cumulative sum of depth increases.
Assume that the log-transformed depth increment at AEP index i and location j is normally distributed.
The mean log-increment is a sum of fixed and random effects.
- \mu is an intercept
- c_i is a random effect capturing how some locations (cells in a simulation mesh) have consistently larger or smaller log-increments
- a_j is a fixed effect describing how some AEPs have consistently larger or smaller log-increments
- d_{ij} is a random effect that describes remaining variability in hazard curve shapes
I found that when you take the flowrate predictions at several junctures on the river, perform PCA, sort the rainfall events by the first principal component score, and then sub-sample events centered around a PC1 score percentile corresponding with an AEP of interest, the flooding depths are biased from the empirical hazard curve depths in a predictable way.
Two types of observations would be used to fit the model:
- Depths from empirical hazard curves derived from running full realizations
- Approximated depths from the PCA sub-sampling approach
I still need to figure out how to account for epistemic uncertainty. One possible approach would select 3-5 target AEPs, sub-sample 30–50 rainfall events around each corresponding PC1 percentile, and rerun those events using R plausible parameter vectors \theta_r. Holding the rainfall event fixed while varying \theta_r would reveal the additional variance attributable to epistemic uncertainty. A Bayesian model could estimate how this variance changes with AEP and use it to widen the hazard-curve uncertainty band.
Here are some questions. I’m open to any input.
- Am I overcomplicating this in some way? I originally suggested using 2D splines to model a GEV distribution with spatially variable parameters, but was told that complex patterns in flooding depth (e.g. flat expanses in hazard curves followed by a sudden jump when a levee is overtopped) necessitate a more nonparametric approach. Is there maybe some clever way to use bootstrapping?
- Are there any other ways one could use to nonparametrically model upper tails of a distribution? I’ve never seen this log-increment approach used anywhere.
- Are there any nested or block designs that would allow me to more effectively separate out epistemic uncertainty and Monte Carlo noise in the empirical hazard curves?







