Trend estimation by particle filter and smoother via nonlinear state-space model.
pfilterNL(y, m = 10000, lag = 20, sigma2, tau2, xrange = NULL, seed = NULL,
plot = TRUE, ...)
An object of class "pfilter"
which has a plot
method. This is a
list with the following components:
log-likelihood.
marginal smoothed distribution of the trend \(T(i,j)\)
\((i = 1,...,n, j = 1,...,7)\), where \(n\) is the length of y
.
j = 4: | 50% point | |
j = 3, 5: | 1-sigma points (15.87% and 84.14% points) | |
j = 2, 6: | 2-sigma points (2.27% and 97.73% points) | |
j = 1, 7: | 3-sigma points (0.13% and 99.87% points) |
univariate time series.
number of particles.
lag length for fixed-lag smoothing.
observation noise variance.
system noise variance.
specify the lower and upper bounds of the distribution's range.
arbitrary positive integer to generate a sequence of uniform random numbers. The default seed is based on the current time.
logical. If TRUE
(default), marginal smoothed distribution
is plotted.
graphical arguments passed to the plot
method.
This function performs paricle filtering and smoothing for the following nonlinear state-space model;
\(x_n = \frac{1}{2} x_{n-1} + \frac{25 x_{n-1}}{x_{n-1}^2 + 1} + 8cos(1.2n) + v_n,\) | (system model) |
\(y_n = \frac{x_n^2}{10} + w_n,\) | (observation model) |
where \(y_n\) is a time series, \(x_n\) is the state vector. The system noise \(v_n\) and the observation noise \(w_n\) are assumed to be white noises which follow a Gaussian distribution and \(v_0\) ~ \(N(0, 5)\).
The algorithm of the particle filtering and smoothing are presented in Kitagawa (2020). For more details, please refer to Kitagawa (1996) and Doucet et al. (2001).
Kitagawa, G. (1996) Monte Carlo filter and smoother for non-Gaussian nonlinear state space models, J. of Comp. and Graph. Statist., 5, 1-25.
Doucet, A., de Freitas, N. and Gordon, N. (2001) Sequential Monte Carlo Methods in Praactice, Springer, New York.
Kitagawa, G. (2020) Introduction to Time Series Modeling with Applications in R. Chapman & Hall/CRC.
pfilter
performs particle filtering and smoothing for linear
non-Gaussian state-space model.
data(NLmodel)
x <- NLmodel[, 2]
pfilterNL(x, m = 100000, lag = 20 , sigma2 = 10.0, tau2 = 1.0,
xrange = c(-20, 20), seed = 2019071117)
Run the code above in your browser using DataLab