smooth {FVDDPpkg}R Documentation

Compute the smoothing distribution of the Fleming-Viot latent signal

Description

Compute the smoothing distribution of the Fleming-Viot latent signal

Usage

smooth(fvddp.past, fvddp.future, t.past, t.future, y.new)

Arguments

fvddp.past

An instance of class fvddp, progressively updated ad propagated with data referring to past times via update() and propagate() (or its approximate version, approx.propagate()).

fvddp.future

Same as fvddp.past, but in this case the propagation has been performed with time data from times later than the one to be estimated. Its hyperparameters must be equals to the ones of fvddp.past.

t.past

The time between the last collection of data (in the past) and the time at which the smoothing is performed.

t.future

Same as t.past, but in this case it is referred to the future. t.future is positive too.

y.new

The data collected at the time the smoothing is performed.

Value

The function returns an instance of class fvddp whose hyperparametrs are the same of fvddp.past and fvddp.future. The values of y.starand M are such that to represent the state of the FVDDP signal in the present time, i.e. the one Which is t.past away from the time at which fvddp.past i estimated, and is t.future away from the time at which fvddp.future is , estimated. Since the computation is usually extemely long, one can rely on the Monte-Carlo approximation provided by approx.smooth().

References

Ascolani F, Lijoi A, Ruggiero M (2023). “Smoothing distributions for conditional Fleming–Viot and Dawson–Watanabe diffusions.” Bernoulli, 29(2), 1410 – 1434. doi:10.3150/22-BEJ1504.

See Also

approx.smooth() for a (faster) approximation based on importance sampling.

Examples

#create wo process and sequentilly update and propagate them
FVDDP = initialize(3, function(x) rbinom(x, 10, .2),
                   function(x) dbinom(x, 10, .2), TRUE)
#for the past
FVDDP.PAST = update(FVDDP, c(2,3))
#for the future
FVDDP.FUTURE = update(FVDDP, c(4))
FVDDP.FUTURE = propagate(FVDDP.FUTURE, 0.5)
FVDDP.FUTURE = update(FVDDP.FUTURE, c(1))
#get a smoothed  FVDDP merging them (with new values too)
smooth(fvddp.past = FVDDP.PAST, fvddp.future = FVDDP.FUTURE,
       t.past= 0.4, t.future = 0.3, y.new = c(1,3))


[Package FVDDPpkg version 0.1.2 Index]