Learn R Programming

TSSS (version 1.3.1)

pfilter: Particle Filtering and Smoothing

Description

Trend estimation by particle filter and smoother.

Usage

pfilter(y, m = 10000, model = 0, lag = 20, initd = 0, sigma2, tau2,
        alpha = 0.99, bigtau2 = NULL, init.sigma2 = 1, xrange = NULL,
        seed = NULL, plot = TRUE, ...)

Value

An object of class "pfilter" which has a plot method. This is a list with the following components:

llkhood

log-likelihood.

smooth.dist

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)

Arguments

y

univariate time series.

m

number of particles.

model

model for the system noise.

0:normal distribution
1:Cauchy distribution
2:Gaussian mixture distribution
\(\alpha\) \(N\)(0, \(\tau^2\)) + (1 - \(\alpha\)) \(N\)(0, \(T^2\)),
where \(N\) is the normal density.

lag

lag length for fixed-lag smoothing.

initd

type of initial state distribution.

0:normal distribution
1:uniform distribution
2:Cauchy distribution
3:fixed point (default value = 0)

sigma2

observation noise variance \(\sigma^2\).

tau2

system noise variance \(\tau^2\) for model = 0 or dispersion parameter for model = 1.

alpha

mixture weight \(\alpha\). (valid for model = 2)

bigtau2

variance of the second component \(T^2\). (valid for model = 2)

init.sigma2

variance for initd = 0 or dispersion parameter of initial state distribution for initd = 2.

xrange

specify the lower and upper bounds of the distribution's range.

seed

arbitrary positive integer to generate a sequence of uniform random numbers. The default seed is based on the current time.

plot

logical. If TRUE (default), marginal smoothed distribution is plotted.

...

graphical arguments passed to the plot method.

Details

This function performs particle filtering and smoothing for the first order trend model;

\(x_n = x_{n-1} + v_n,\)(system model)
\(y_n = x_n + 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 or a Cauchy distribution, and non-Gaussian distribution, respectively.

The algorithm of the particle filter and smoother are presented in Kitagawa (2020). For more details, please refer to Kitagawa (1996) and Doucet et al. (2001).

References

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.

See Also

pfilterNL performs particle filtering and smoothing for nonlinear non-Gaussian state-space model.

Examples

Run this code
data(PfilterSample)
y <- PfilterSample

if (FALSE) {
pfilter(y, m = 100000, model = 0, lag = 20, initd = 0, sigma2 = 1.048,
        tau2 = 1.4e-2, xrange = c(-4, 4), seed = 2019071117)

pfilter(y, m = 100000, model = 1, lag = 20 , initd = 0, sigma2 = 1.045,
        tau2 = 3.53e-5, xrange = c(-4, 4), seed = 2019071117)

pfilter(y, m = 100000, model = 2, lag = 20 , initd = 0, sigma2 = 1.03,
        tau2 = 0.00013, alpha = 0.991, xrange = c(-4, 4), seed = 2019071117)
}

Run the code above in your browser using DataLab