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. |