Module bayes_estimate::estimators::sir[][src]

Expand description

Sampling Importance Resampleing estimation. Also know as a weighted Booststrap.

References [1] “Novel approach to nonlinear-non-Guassian Bayesian state estimation” NJ Gordon, DJ Salmond, AFM Smith IEE Proceeding-F Vol.140 No.2 April 1993 [2] Building Robust Simulation-based Filter for Evolving Data Sets“ J Carpenter, P Clifford, P Fearnhead Technical Report Unversity of Oxford

A variety of resampling algorithms can be used for SIR. There are implementations for two algorithms: standard_resample: Standard resample algorithm from [1] systematic_resample: A Simple stratified resampler from [2]

NOTES: SIR algorithms is sensitive to the PRNG properties. In particular we require that the uniform random number range be [0..1) NOT [0..1]. Quantisation generated random number must not approach the sample size. This will result in quantisation of the resampling. For example if random identically equal to 0 becomes highly probable due to quantisation this will result in the first sample being selectively draw whatever its likelihood.

Numerics: Resampling requires comparisons of normalised likelihoods. These may become insignificant if likelihoods have a large range. Resampling becomes ill conditioned for these samples.

Structs

SampleState

Sample state.

Functions

gaussian_observation_likelihood
live_samples

Update ‘s’ by selectively copying resamples. Uses a in-place copying algorithm: First copy the live samples (those resampled) to end of s. Replicate live sample in-place start an the begining of s.

normal_noise_sampler

Generate as sampling function for normally distributed noise.

normal_noise_sampler_coupled

Generate as sampling function for normally distributed coupled noise.

roughen_minmax

Roughen sample state using min max roughening of the samples.

roughen_noise

Couple noise roughening.

standard_resampler

Standard resampler from [1]. Algorithm: A sample is chosen once for each time its cumulative likelihood intersects with a uniform random draw. Complexity is that of Vec::sort, O(n * log(n)) worst-case. This complexity is required to sort the uniform random draws made, this allows comparing of the two ordered lists w(cumulative) and ur (the sorted random draws).

systematic_resampler

Systematic resample algorithm from [2]. Algorithm: A particle is chosen once for each time its cumulative likelihood intersects with an equidistant grid. A uniform random draw is chosen to position the grid within the cumulative likelihoods. Complexity O(n)

Type Definitions

Likelihoods

likelihoods.

Resampler

A resampling function.

Resamples

Resample count.

Roughener

A roughening function.

Samples

State samples.