gaussian_approx {bssm} | R Documentation |
Gaussian Approximation of Non-Gaussian/Non-linear State Space Model
Description
Returns the approximating Gaussian model which has the same conditional mode of p(alpha|y, theta) as the original model. This function is rarely needed itself, and is mainly available for testing and debugging purposes.
Usage
gaussian_approx(model, max_iter, conv_tol, ...)
## S3 method for class 'nongaussian'
gaussian_approx(model, max_iter = 100, conv_tol = 1e-08, ...)
## S3 method for class 'ssm_nlg'
gaussian_approx(model, max_iter = 100, conv_tol = 1e-08, iekf_iter = 0, ...)
Arguments
model |
Model to be approximated. Should be of class
|
max_iter |
Maximum number of iterations as a positive integer. Default is 100 (although typically only few iterations are needed). |
conv_tol |
Positive tolerance parameter. Default is 1e-8. Approximation
is claimed to be converged when the mean squared difference of the modes of
is less than |
... |
Ignored. |
iekf_iter |
For non-linear models, non-negative number of iterations in
iterated EKF (defaults to 0, i.e. normal EKF). Used only for models of class
|
Value
Returns linear-Gaussian SSM of class ssm_ulg
or
ssm_mlg
which has the same conditional mode of p(alpha|y, theta) as
the original model.
References
Koopman, SJ and Durbin J (2012). Time Series Analysis by State Space Methods. Second edition. Oxford: Oxford University Press.
Vihola, M, Helske, J, Franks, J. (2020). Importance sampling type estimators based on approximate marginal Markov chain Monte Carlo. Scand J Statist. 1-38. https://doi.org/10.1111/sjos.12492
Examples
data("poisson_series")
model <- bsm_ng(y = poisson_series, sd_slope = 0.01, sd_level = 0.1,
distribution = "poisson")
out <- gaussian_approx(model)
for(i in 1:7)
cat("Number of iterations used: ", i, ", y[1] = ",
gaussian_approx(model, max_iter = i, conv_tol = 0)$y[1], "\n", sep ="")