ibpf: Iterated block particle filter (IBPF)

ibpfR Documentation

Iterated block particle filter (IBPF)

Description

An iterated block particle filter, for both shared and unit-specific parameters. We require that the spatPomp has been constructed to have a unit-specific parameter "thetau" for unit u corresponding to an estimated parameter "theta", whether theta is shared or unit-specific. This permits IBPF to implement a spatiotemporal random walk to estimate theta. We require that rw.sd is positive for, and only for, all parameters of the form "thetau" if "theta" is listed in sharedParNames or unitParNames.

Usage

## S4 method for signature 'missing'
ibpf(data, ...)

## S4 method for signature 'ANY'
ibpf(data, ...)

## S4 method for signature 'spatPomp'
ibpf(
  data,
  Nbpf,
  Np,
  rw.sd,
  sharedParNames,
  unitParNames,
  cooling.type = "geometric",
  cooling.fraction.50,
  block_size,
  block_list,
  spat_regression,
  ...,
  verbose = getOption("verbose", FALSE)
)

## S4 method for signature 'ibpfd_spatPomp'
ibpf(
  data,
  Nbpf,
  Np,
  rw.sd,
  sharedParNames,
  unitParNames,
  cooling.type = "geometric",
  cooling.fraction.50,
  block_size,
  block_list,
  spat_regression,
  ...,
  verbose = getOption("verbose", FALSE)
)

## S4 method for signature 'bpfilterd_spatPomp'
ibpf(
  data,
  Nbpf,
  Np,
  rw.sd,
  sharedParNames,
  unitParNames,
  cooling.type = "geometric",
  cooling.fraction.50,
  block_size,
  block_list,
  spat_regression,
  ...,
  verbose = getOption("verbose", FALSE)
)

Arguments

data

either a data frame holding the time series data, or an object of class ‘pomp’, i.e., the output of another pomp calculation. Internally, data will be coerced to an array with storage-mode double.

...

If a params argument is specified, bpfilter will estimate the likelihood at that parameter set instead of at coef(object).

Nbpf

the number of iterations of perturbed BPF.

Np

The number of particles used within each replicate for the adapted simulations.

rw.sd

specification of the magnitude of the random-walk perturbations that will be applied to some or all model parameters. Parameters that are to be estimated should have positive perturbations specified here. The specification is given using the rw.sd function, which creates a list of unevaluated expressions. The latter are evaluated in a context where the model time variable is defined (as time). The expression ivp(s) can be used in this context as shorthand for

ifelse(time==time[1],s,0).

Likewise, ivp(s,lag) is equivalent to

ifelse(time==time[lag],s,0).

See below for some examples.

The perturbations that are applied are normally distributed with the specified s.d. If parameter transformations have been supplied, then the perturbations are applied on the transformed (estimation) scale.

sharedParNames

estimated parameters that are equal for each unit.

unitParNames

estimated parameters that are different for each unit.

cooling.type, cooling.fraction.50

specifications for the cooling schedule, i.e., the manner and rate with which the intensity of the parameter perturbations is reduced with successive filtering iterations. cooling.type specifies the nature of the cooling schedule. See below (under “Specifying the perturbations”) for more detail.

block_size

The number of spatial units per block. If this is provided, the method subdivides units approximately evenly into blocks with size block_size.

block_list

List that specifies an exact partition of the spatial units. Each partition element, or block, is an integer vector of neighboring units.

spat_regression

fraction of each extended parameter regressed toward the unit mean. Not required when all parameters are unit-specific.

verbose

logical; if TRUE, messages updating the user on progress will be printed to the console.

Value

Upon successful completion, ibpf returns an object of class ‘ibpfd_spatPomp’.

Methods

The following methods are available for such an object:

coef

gives the Monte Carlo estimate of the maximum likelihood.

Author(s)

Edward L. Ionides

References

\ionides

2022

See Also

likelihood evaluation algorithms: girf(), enkf(), bpfilter(), abf(), abfir()

Other likelihood maximization algorithms: ienkf(), igirf(), iubf()


spatPomp documentation built on Aug. 10, 2023, 1:10 a.m.