armax.inverse.fit {hydromad} | R Documentation |
Calibrate unit hydrograph transfer function models (armax
or expuh
) using Inverse Filtering.
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"), ...)
DATA |
a
|
order |
the transfer function order. See |
delay |
delay (lag time / dead time) in number of time steps. If missing, this will be estimated from the cross correlation function. |
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)))
.
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. |
Felix Andrews felix@nfrac.org
...
armax.inverse.sim
,
armax
,
expuh
,
armax.sriv.fit
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)