Chaos, Rough Likelihoods and Data Assimilation (Concept Note)
Summary
Concept note, no raw source (the vault already holds Wood 2010 and its synthetic-likelihood notes; this note links them to the PyMC examples E46 and E47). In a chaotic system a tiny parameter change moves the simulated trajectory far from the data after a few Lyapunov times, so the trajectory-matching likelihood is rough with many local optima. Three fixes: compare phase-insensitive summary statistics (synthetic likelihood), shorten the horizon (multiple shooting / data assimilation), or model process noise so the state is re-anchored to data.
Overview
For a state with largest Lyapunov exponent , two trajectories started apart separate like . A deterministic likelihood over a long series therefore depends on and in a fractal way; gradients are huge or meaningless and HMC/optimizers find local optima everywhere. Wood (2010) demonstrated this on the chaotic Ricker map and Nicholson’s blowflies (Nicholson’s Blowfly Application).
Main Content
Ricker map with observation noise (Wood 2010 benchmark)
, (process noise); (observation). For above about 2.69 the noise-free map is chaotic. With , the likelihood in has a razor-edged surface; with process noise it is well defined but intractable (latent ), so use particle methods or likelihood-free approaches.
| Strategy | Idea | Where it appears | Trade-off |
|---|---|---|---|
| Synthetic likelihood | Compute summary statistics insensitive to phase (autocovariances, quantiles, regression coefficients of the nonlinear dynamics); model from simulations | Synthetic Likelihood - Overview, Chaos and Phase-Insensitive Statistics | Statistics lose information; Gaussianity of must be checked |
| Neural simulation-based inference | Learn posterior/likelihood/ratio from simulations | Neural Simulation-Based Inference - Overview | Needs many simulations; coverage must be checked |
| Multiple shooting | Split into windows with free initial states and add continuity penalties/constraints | Standard in ODE parameter estimation (Bock 1981); Bayesian versions treat window starts as parameters | More parameters, but each window’s likelihood is smooth |
| Data assimilation (state-space) | Filter/smooth the latent state with process noise: EnKF, particle filters, 4D-Var | Weather forecasting: Lorenz-63 in E47; see State-Space Models and the Kalman Filter - Overview | Needs a process-noise model; linear-Gaussian only for the Kalman filter |
| Particle MCMC | Unbiased likelihood estimate from a particle filter inside Metropolis-Hastings (Andrieu, Doucet & Holenstein 2010) | Nonlinear state-space models | Cost, variance of the estimate must be controlled |
Why process noise rescues the likelihood
With the state is re-anchored each step by the data and the likelihood is a product of one-step-ahead predictive densities; prediction error does not accumulate exponentially, so the surface is smooth in . The price is that the dynamics are no longer deterministic: you are fitting a stochastic model, and parameter meaning changes accordingly.
Control and prediction (E46, E47 themes)
Prediction horizon is limited by regardless of inference quality (a few Lyapunov times), so posterior predictive intervals must widen with lead time; “regime control” in Lorenz-63 means nudging the system between its two lobes using the posterior over the current state, which is a decision problem on top of assimilation (Decision Analysis).
Examples
Lyapunov exponent of the Ricker map and the rough likelihood (NumPy; runs).
import numpy as np
def ricker_traj(logr, N0=1.0, T=60):
r = np.exp(logr); N = np.empty(T); N[0] = N0
for t in range(T-1): N[t+1] = r*N[t]*np.exp(-N[t])
return N
def lyap(logr, T=2000):
r = np.exp(logr); N = 0.5; s = 0.0
for _ in range(T):
s += np.log(abs(1 - N)) + logr - N # log|d/dN of N' = r N e^{-N}| = log|r e^{-N}(1-N)|
N = r*N*np.exp(-N)
return s/T
for lr in (2.0, 3.8, 4.0): print(lr, round(lyap(lr), 3)) # about -0.002, 0.545, 0.508 (verified): near zero or negative -> stable; positive -> chaos
# Trajectory-matching "likelihood" in log r after 60 steps:
y = ricker_traj(3.8); grid = np.linspace(3.79, 3.81, 9)
print(np.round([np.sum((ricker_traj(g) - y)**2) for g in grid], 1)) # [2775 1310 2234 1666 0 3453 2895 3200 3592] (verified): wild, non-monotone around the truthThe squared-error profile near the true value is erratic rather than a smooth bowl.
Relevance to marketing measurement
Real marketing series are not chaotic in this strict sense, but any model with strong nonlinear feedback (competitive response, saturation with delayed adstock) can produce rough likelihood surfaces; the remedy is the same: short-horizon one-step-ahead prediction (state-space form) over long-horizon trajectory matching. See Linear-Gaussian State-Space Models and Marginal Likelihood via the Kalman Filter.
Connections
Chen 2018 - Scope, Limitations and Statistical Use (adjoint reconstruction error grows with in chaotic systems), ODE Filters and Smoothers, Challenge of Multimodality - Differential Equation for Planetary Motion.
See Also
Likelihoods Built on Differential Equations (Concept Note), Neural Likelihood Estimation and Sequential Neural Likelihood.