View source: R/bootstrap_filter.R
bootstrap_filter | R Documentation |
Function bootstrap_filter
performs a bootstrap filtering with
stratification resampling.
bootstrap_filter(model, particles, ...)
## S3 method for class 'lineargaussian'
bootstrap_filter(
model,
particles,
seed = sample(.Machine$integer.max, size = 1),
...
)
## S3 method for class 'nongaussian'
bootstrap_filter(
model,
particles,
seed = sample(.Machine$integer.max, size = 1),
...
)
## S3 method for class 'ssm_nlg'
bootstrap_filter(
model,
particles,
seed = sample(.Machine$integer.max, size = 1),
...
)
## S3 method for class 'ssm_sde'
bootstrap_filter(
model,
particles,
L,
seed = sample(.Machine$integer.max, size = 1),
...
)
model |
A model object of class |
particles |
Number of particles as a positive integer. Suitable values depend on the model and the data, and while larger values provide more accurate estimates, the run time also increases with respect to the number of particles, so it is generally a good idea to test the filter first with a small number of particles, e.g., less than 100. |
... |
Ignored. |
seed |
Seed for the C++ RNG (positive integer). |
L |
Positive integer defining the discretization level for SDE models. |
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
).
Gordon, NJ, Salmond, DJ, Smith, AFM (1993) Novel approach to nonlinear/non-Gaussian Bayesian state estimation. IEE Proceedings F, 140(2), p. 107-113.
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.