armax.sriv.fit {hydromad} | R Documentation |
Calibrate unit hydrograph transfer function models (armax
or expuh
) using Simple Refined Instrumental
Variables (SRIV) method.
armax.sriv.fit(DATA, order = hydromad.getOption("order"), delay = hydromad.getOption("delay"), noise.order = hydromad.getOption("riv.noise.order"), fixed.ar = NULL, ..., fallback = TRUE, na.action = na.pass, epsilon = hydromad.getOption("sriv.epsilon"), max.iterations = hydromad.getOption("sriv.iterations")) expuh.sriv.fit(DATA, order = hydromad.getOption("order"), delay = hydromad.getOption("delay"), quiet = FALSE, ...)
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. |
noise.order |
|
fixed.ar |
|
... |
further arguments may include
|
fallback |
|
na.action |
|
epsilon |
|
max.iterations |
|
quiet |
to suppress the message when re-fitting if non-physical poles (i.e. negative or imaginary poles) are detected. |
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 SRIV one could write
hydromad(..., routing = "expuh", rfit = "sriv")
which uses the default order, hydromad.getOption("order")
, or
hydromad(..., routing = "expuh", rfit = list("sriv", 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
Young, P. C. (2008). The refined instrumental variable method. Journal Européen des Systèmes Automatisés 42 (2-3), 149-179. http://dx.doi.org/10.3166/jesa.42.149-179
Jakeman, A. J., G. A. Thomas and C. R. Dietrich (1991). System Identification and Validation for Output Prediction of a Dynamic Hydrologic Process, Journal of Forecasting 10, pp. 319–346.
Ljung, Lennart (1999). System Identification: Theory for the User (second edition). Prentice Hall. pp. 224-226, 466.
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.sriv.fit(ts.union(U = U, Q = Yh), order = c(2, 2), warmup = 0) fit1 xyplot(ts.union(observed = Yh, fitted = fitted(fit1)), superpose = TRUE)