armax {sysid}R Documentation

Estimate ARMAX Models

Description

Fit an ARMAX model of the specified order given the input-output data

Usage

armax(x, order = c(0, 1, 1, 0), init_sys = NULL, intNoise = FALSE,
  options = optimOptions())

Arguments

x

an object of class idframe

order

Specification of the orders: the four integer components (na,nb,nc,nk) are the order of polynolnomial A, order of polynomial B + 1, order of the polynomial C,and the input-output delay respectively

init_sys

Linear polynomial model that configures the initial parameterization. Must be an ARMAX model. Overrules the order argument

intNoise

Logical variable indicating whether to add integrators in the noise channel (Default=FALSE)

options

Estimation Options, setup using optimOptions

Details

SISO ARMAX models are of the form

y[k] + a_1 y[k-1] + \ldots + a_{na} y[k-na] = b_{nk} u[k-nk] + \ldots + b_{nk+nb} u[k-nk-nb] + c_{1} e[k-1] + \ldots c_{nc} e[k-nc] + e[k]

The function estimates the coefficients using non-linear least squares (Levenberg-Marquardt Algorithm)
The data is expected to have no offsets or trends. They can be removed using the detrend function.

Value

An object of class estpoly containing the following elements:

sys

an idpoly object containing the fitted ARMAX coefficients

fitted.values

the predicted response

residuals

the residuals

input

the input data used

call

the matched call

stats

A list containing the following fields:
vcov - the covariance matrix of the fitted coefficients
sigma - the standard deviation of the innovations

options

Option set used for estimation. If no custom options were configured, this is a set of default options

termination

Termination conditions for the iterative search used for prediction error minimization: WhyStop - Reason for termination
iter - Number of Iterations
iter - Number of Function Evaluations

References

Arun K. Tangirala (2015), Principles of System Identification: Theory and Practice, CRC Press, Boca Raton. Sections 14.4.1, 21.6.2

Examples

data(armaxsim)
z <- dataSlice(armaxsim,end=1533) # training set
mod_armax <- armax(z,c(1,2,1,2))
mod_armax


[Package sysid version 1.0.4 Index]