Learn R Programming

bssm (version 1.1.7-1)

bootstrap_filter: Bootstrap Filtering

Description

Function bootstrap_filter performs a bootstrap filtering with stratification resampling.

Usage

bootstrap_filter(model, particles, ...)

# S3 method for gaussian bootstrap_filter( model, particles, seed = sample(.Machine$integer.max, size = 1), ... )

# S3 method for nongaussian bootstrap_filter( model, particles, seed = sample(.Machine$integer.max, size = 1), ... )

# S3 method for ssm_nlg bootstrap_filter( model, particles, seed = sample(.Machine$integer.max, size = 1), ... )

# S3 method for ssm_sde bootstrap_filter( model, particles, L, seed = sample(.Machine$integer.max, size = 1), ... )

Arguments

model

A model object of class bssm_model.

particles

Number of particles as a positive integer.

...

Ignored.

seed

Seed for RNG (non-negative integer).

L

Positive integer defining the discretization level for SDE models.

Value

List with samples (alpha) from the filtering distribution and corresponding weights (weights), as well as filtered and predicted states and corresponding covariances (at, att, Pt, Ptt), and estimated log-likelihood (logLik).

References

Gordon, NJ, Salmond, DJ, Smith, AFM (1993) Novel approach to nonlinear/non-Gaussian Bayesian state estimation. IEE Proceedings F, 140(2), p. 107-113.

Examples

Run this code
# NOT RUN {
set.seed(1)
x <- cumsum(rnorm(50))
y <- rnorm(50, x, 0.5) 
model <- bsm_lg(y, sd_y = 0.5, sd_level = 1, P1 = 1)
  
out <- bootstrap_filter(model, particles = 1000)
ts.plot(cbind(y, x, out$att), col = 1:3)
ts.plot(cbind(kfilter(model)$att, out$att), col = 1:3)

data("poisson_series")
model <- bsm_ng(poisson_series, sd_level = 0.1, sd_slope = 0.01, 
  P1 = diag(1, 2), distribution = "poisson")
  
out <- bootstrap_filter(model, particles = 100)
ts.plot(cbind(poisson_series, exp(out$att[, 1])), col = 1:2)

# }

Run the code above in your browser using DataLab