# rarmax

Estimate recursively parameters of ARMAX or ARMA models

## Syntax

```thm = rarmax(z,nn,adm,adg)
[thm,yhat,P,phi,psi] = rarmax(z,nn,adm,adg,th0,P0,phi0,psi0)
```

## Description

The parameters of the ARMAX model structure

$A\left(q\right)y\left(t\right)=B\left(q\right)u\left(t-nk\right)+C\left(q\right)e\left(t\right)$

are estimated using a recursive prediction error method.

The input-output data is contained in `z`, which is either an `iddata` object or a matrix ```z = [y u]``` where `y` and `u` are column vectors. `nn` is given as

```nn = [na nb nc nk] ```

where `na`, `nb`, and `nc` are the orders of the ARMAX model, and `nk` is the delay. Specifically,

See What Are Polynomial Models? for more information.

If `z` represents a time series `y` and ```nn = [na nc]```, `rarmax` estimates the parameters of an ARMA model for `y`.

$A\left(q\right)y\left(t\right)=C\left(q\right)e\left(t\right)$

Only single-input, single-output models are handled by `rarmax`. Use `rpem` for the multiple-input case.

The estimated parameters are returned in the matrix `thm`. The `k`th row of `thm` contains the parameters associated with time `k`; that is, they are based on the data in the rows up to and including row `k` in `z`. Each row of `thm` contains the estimated parameters in the following order:

```thm(k,:) = [a1,a2,...,ana,b1,...,bnb,c1,...,cnc] ```

`yhat` is the predicted value of the output, according to the current model; that is, row k of `yhat` contains the predicted value of `y(k)` based on all past data.

The actual algorithm is selected with the two arguments `adm` and `adg`. These are described under `rarx`.

The input argument `th0` contains the initial value of the parameters, a row vector consistent with the rows of `thm`. The default value of `th0` is all zeros.

The arguments `P0` and `P` are the initial and final values, respectively, of the scaled covariance matrix of the parameters. See `rarx`. The default value of `P0` is 104 times the unit matrix. The arguments `phi0`, `psi0`, `phi`, and `psi` contain initial and final values of the data vector and the gradient vector, respectively. The sizes of these depend on the chosen model orders. The normal choice of `phi0` and `psi0` is to use the outputs from a previous call to `rarmax` with the same model orders. (This call could be a dummy call with default input arguments.) The default values of `phi0` and `psi0` are all zeros.

Note that the function requires that the delay `nk` be larger than `0`. If you want `nk = 0`, shift the input sequence appropriately and use `nk = 1`.

## Examples

Compute and plot, as functions of time, the four parameters in a second-order ARMA model of a time series given in the vector `y`. The forgetting factor algorithm with a forgetting factor of 0.98 is applied.

```thm = rarmax(y,[2 2],'ff',0.98); plot(thm)```

## More About

collapse all

### Algorithms

The general recursive prediction error algorithm (11.44), (11.47) through (11.49) of Ljung (1999) is implemented. See Algorithms for Recursive Estimation for more information.

## See Also

Was this topic helpful?

Get trial now