Learn R Programming

foieGras (version 0.6-7)

sfilter: fit the state-space model to data after passing through prefilter

Description

generates initial values for model parameters and unobserved states; structures data and initial values for C++ TMB template; fits state-space model; minimizes the joint log-likelihood via the selected optimizer (nlminb or optim); structures and passes output object to fit_ssm

Usage

sfilter(
  x,
  model = c("rw", "crw"),
  time.step = 6,
  scale = FALSE,
  parameters = NULL,
  map = NULL,
  fit.to.subset = TRUE,
  optim = c("nlminb", "optim"),
  verbose = 1,
  control = NULL,
  inner.control = NULL,
  lpsi = -10
)

Arguments

x

Argos data passed through prefilter()

model

specify which SSM is to be fit: "rw" or "crw"

time.step

the regular time interval, in hours, to predict to. Alternatively, a vector of prediction times, possibly not regular, must be specified as a data.frame with id and POSIXt dates.

scale

scale location data for more efficient optimization.

parameters

a list of initial values for all model parameters and unobserved states, default is to let sfilter specify these. Only play with this if you know what you are doing...

map

a named list of parameters as factors that are to be fixed during estimation, e.g., list(psi = factor(NA))

fit.to.subset

fit the SSM to the data subset determined by prefilter (default is TRUE)

optim

numerical optimizer to be used ("nlminb" or "optim")

verbose

report progress during minimization (0 = silent; 1 = show parameter trace [default]; 2 = show optimizer trace)

control

list of control parameters for the outer optimization (type ?nlminb or ?optim for details)

inner.control

list of control settings for the inner optimization (see ?TMB::MakeADFUN for additional details)

lpsi

lower bound for the psi parameter

Details

called by fit_ssm, not intended for general use. sfilter can only fit to an individual track, use fit_ssm to fit to multiple tracks (see ?fit_ssm).

Examples

Run this code
# NOT RUN {
data(ellie)
pf <- prefilter(ellie, vmax=4, ang=c(15,25), min.dt=120)
out <- sfilter(pf, model="rw", time.step=24)

# }

Run the code above in your browser using DataLab