armax.inverse.fit {hydromad}R Documentation

Estimate transfer function models by Inverse Filtering.

Description

Calibrate unit hydrograph transfer function models (armax or expuh) using Inverse Filtering.

Usage


armax.inverse.fit(DATA,
                  order = hydromad.getOption("order"),
                  delay = hydromad.getOption("delay"), 
                  fit.method = hydromad.getOption("inverse.fit.method"),
                  normalise = TRUE, 
                  init.U = TRUE, pars = NULL,
                  use.Qm = TRUE,
                  fft.inverse.sim = FALSE, 
                  rises.only = FALSE,
                  ...,
                  max.iterations = hydromad.getOption("inverse.iterations"), 
                  rel.tolerance = hydromad.getOption("inverse.rel.tolerance"), 
                  par.epsilon = hydromad.getOption("inverse.par.epsilon"), 
                  init.attempt = 0, trace = hydromad.getOption("trace"))

expuh.inverse.fit(DATA,
                  order = hydromad.getOption("order"),
                  delay = hydromad.getOption("delay"),
                  ...)

Arguments

DATA

a ts-like object with named columns:

Q

observed output time series.

P

observed input time series (optional).

order

the transfer function order. See armax.

delay

delay (lag time / dead time) in number of time steps. If missing, this will be estimated from the cross correlation function.

Details

In normal usage, one would not call these functions directly, but rather specify the routing fitting method for a hydromad model using that function's rfit argument. E.g. to specify fitting an expuh routing model by inverse filtering one could write

hydromad(..., routing = "expuh", rfit = "inverse")

or

hydromad(..., routing = "expuh", rfit = list("inverse", order = c(2,1))).

Value

a tf object, which is a list with components

coefficients

the fitted parameter values.

fitted.values

the fitted values.

residuals

the residuals.

delay

the (possibly fitted) delay time.

Author(s)

Felix Andrews felix@nfrac.org

References

...

See Also

armax.inverse.sim, armax, expuh, armax.sriv.fit

Examples

U <- ts(c(0, 0, 0, 1, rep(0, 30), 1, rep(0, 20)))
Y <- expuh.sim(lag(U, -1), tau_s = 10, tau_q = 2, v_s = 0.5, v_3 = 0.1)
set.seed(0)
Yh <- Y * rnorm(Y, mean = 1, sd = 0.2)
fit1 <- armax.inverse.fit(ts.union(P = U, Q = Yh),
                          order = c(2, 2), warmup = 0)
fit1
xyplot(ts.union(observed = Yh, fitted = fitted(fit1)),
       superpose = TRUE)
[Package hydromad version 0.9-18 Index]