nlf: Parameter estimation my maximum simulated quasi-likelihood...

Description Usage Arguments Details Value Author(s) References

Description

nlf calls an optimizer to maximize the nonlinear forecasting (NLF) goodness of fit. The latter is computed by simulating data from a model, fitting a nonlinear autoregressive model to the simulated time series, and quantifying the ability of the resulting fitted model to predict the data time series. NLF is an ‘indirect inference’ method using a quasi-likelihood as the objective function.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
## S4 method for signature 'pomp'
nlf(object, start, est, lags, period = NA, tensor = FALSE,
     nconverge=1000, nasymp=1000, seed = 1066,
     transform.data, nrbf = 4,
     method = c("subplex", "Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN", "Brent"),
     skip.se = FALSE, verbose = getOption("verbose"),
     bootstrap=FALSE, bootsamp = NULL,
     lql.frac = 0.1, se.par.frac = 0.1, eval.only = FALSE,
     transform.params, transform = FALSE, ...)
## S4 method for signature 'nlfd.pomp'
nlf(object, start, est, lags, period, tensor,
     nconverge, nasymp, seed, transform.data, nrbf, method,
     lql.frac, se.par.frac, transform, ...)

Arguments

object

A pomp object, with the data and model to fit to it.

start

Named numeric vector with guessed parameters.

est

Vector containing the names or indices of parameters to be estimated.

lags

A vector specifying the lags to use when constructing the nonlinear autoregressive prediction model. The first lag is the prediction interval.

period

numeric; period=NA means the model is nonseasonal. period>0 is the period of seasonal forcing in 'real time'.

tensor

logical; if FALSE, the fitted model is a generalized additive model with time mod period as one of the predictors, i.e., a gam with time-varying intercept. If TRUE, the fitted model is a gam with lagged state variables as predictors and time-periodic coefficients, constructed using tensor products of basis functions of state variables with basis functions of time.

nconverge

Number of convergence timesteps to be discarded from the model simulation.

nasymp

Number of asymptotic timesteps to be recorded from the model simulation.

seed

Integer specifying the random number seed to use. When fitting, it is usually best to always run the simulations with the same sequence of random numbers, which is accomplished by setting seed to an integer. If you want a truly random simulation, set seed=NULL.

transform.params

deprecated. Will be removed in a future version. Use transform instead.

transform

logical; if TRUE, parameters are optimized on the transformed scale.

transform.data

optional function. If specified, forecasting is performed using data and model simulations transformed by this function. By default, transform.data is the identity function, i.e., no transformation is performed. The main purpose of transform.data is to achieve approximately multivariate normal forecasting errors. If data are univariate, transform.data should take a scalar and return a scalar. If data are multivariate, transform.data should assume a vector input and return a vector of the same length.

nrbf

A scalar specifying the number of radial basis functions to be used at each lag.

method

Optimization method. Choices are subplex and any of the methods used by optim.

skip.se

Logical; if TRUE, skip the computation of standard errors.

verbose

Logical; if TRUE, the negative log quasilikelihood and parameter values are printed at each iteration of the optimizer.

bootstrap

Logical; if TRUE the indices in bootsamp will determine which of the conditional likelihood values be used in computing the quasi-loglikelihood.

bootsamp

Vector of integers; used to have the quasi-loglikelihood evaluated using a bootstrap re-sampling of the data set.

lql.frac

target fractional change in log quasi-likelihood for quadratic standard error estimate

se.par.frac

initial parameter-change fraction for quadratic standard error estimate

eval.only

logical; if TRUE, no optimization is attempted and the quasi-loglikelihood value is evaluated at the start parameters.

...

Arguments that will be passed to optim or subplex in the control list.

Details

This runs an optimizer to maximize nlf.objfun.

Value

An object of class nlfd.pomp. logLik applied to such an object returns the log quasi likelihood. The $ method allows extraction of arbitrary slots from the nlfd.pomp object.

Author(s)

Stephen P. Ellner spe2 at cornell dot edu, Bruce E. Kendall kendall at bren dot ucsb dot edu, Aaron A. King kingaa at umich dot edu

References

The following papers describe and motivate the NLF approach to model fitting:

Ellner, S. P., Bailey, B. A., Bobashev, G. V., Gallant, A. R., Grenfell, B. T. and Nychka D. W. (1998) Noise and nonlinearity in measles epidemics: combining mechanistic and statistical approaches to population modeling. American Naturalist 151, 425–440.

Kendall, B. E., Briggs, C. J., Murdoch, W. W., Turchin, P., Ellner, S. P., McCauley, E., Nisbet, R. M. and Wood S. N. (1999) Why do populations cycle? A synthesis of statistical and mechanistic modeling approaches. Ecology 80, 1789–1805.

Kendall, B. E., Ellner, S. P., McCauley, E., Wood, S. N., Briggs, C. J., Murdoch, W. W. and Turchin, P. (2005) Population cycles in the pine looper moth (Bupalus piniarius): dynamical tests of mechanistic hypotheses. Ecological Monographs 75, 259–276.


pomp documentation built on May 2, 2019, 4:09 p.m.

Related to nlf in pomp...