Ensemble Kalman filter prediction step.

The Ensemble Kalman Filter is a Monte Carlo version of the traditional Kalman Filter. See also [2]. It assumes the model

X[t] ~ transition_fn(X[t-1])
Y[t] ~ observation_fn(X[t])

Given the ensemble state.particles sampled from P(X[t-1] | Y[t-1], ...), this function produces the predicted (a.k.a. forecast or background) ensemble sampled from P(X[t] | Y[t-1], ...). This is the predicted next state before assimilating the observation Y[t].

Typically, with F some deterministic mapping, transition_fn(X) returns a normal distribution centered at F(X).

state Instance of EnsembleKalmanFilterState.
transition_fn callable returning a (joint) distribution over the next latent state, and any information in the extra state. Each component should be an instance of MultivariateNormalLinearOperator.
seed PRNG seed; see tfp.random.sanitize_seed for details.
inflate_fn Function that takes in the particles and returns a new set of particles. Used for inflating the covariance of points. Note this function should try to preserve the sample mean of the particles, and scale up the sample covariance [3].
name Python str name for ops created by this method. Default value: None (i.e., 'ensemble_kalman_filter_predict').

next_state EnsembleKalmanFilterState representing particles after applying transition_fn.


[1] Geir Evensen. Sequential data assimilation with a nonlinear quasi-geostrophic model using Monte Carlo methods to forecast error statistics. Journal of Geophysical Research, 1994.

[2] Matthias Katzfuss, Jonathan R. Stroud & Christopher K. Wikle Understanding the Ensemble Kalman Filter. The Americal Statistician, 2016.

[3] Jeffrey L. Anderson and Stephen L. Anderson. A Monte Carlo Implementation of the Nonlinear Filtering Problem to Produce Ensemble Assimilations and Forecasts. Monthly Weather Review, 1999.