Fit a box-jenkins model of the specified order from input-output data
bj(z, order = c(1, 1, 1, 1, 0), init_sys = NULL, options = optimOptions())An object of class estpoly containing the following elements:
an idpoly object containing the
fitted BJ coefficients
the predicted response
the residuals
the input data used
the matched call
A list containing the following fields:
vcov - the covariance matrix of the fitted coefficients
sigma - the standard deviation of the innovations
Option set used for estimation. If no custom options were configured, this is a set of default options
Termination conditions for the iterative
search used for prediction error minimization:
WhyStop - Reason for termination
iter - Number of Iterations
iter - Number of Function Evaluations
an idframe object containing the data
Specification of the orders: the five integer components (nb,nc,nd,nf,nk) are order of polynomial B + 1, order of the polynomial C, order of the polynomial D, order of the polynomial F, and the input-output delay respectively
Linear polynomial model that configures the initial parameterization.
Must be a BJ model. Overrules the order argument
Estimation Options, setup using
optimOptions
SISO BJ models are of the form $$ y[k] = \frac{B(q^{-1})}{F(q^{-1})}u[k-nk] + \frac{C(q^{-1})}{D(q^{-1})} e[k] $$ The orders of Box-Jenkins model are defined as follows: $$ B(q^{-1}) = b_1 + b_2q^{-1} + \ldots + b_{nb} q^{-nb+1} $$
$$ C(q^{-1}) = 1 + c_1q^{-1} + \ldots + c_{nc} q^{-nc} $$
$$ D(q^{-1}) = 1 + d_1q^{-1} + \ldots + d_{nd} q^{-nd} $$ $$ F(q^{-1}) = 1 + f_1q^{-1} + \ldots + f_{nf} q^{-nf} $$
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.
Arun K. Tangirala (2015), Principles of System Identification: Theory and Practice, CRC Press, Boca Raton. Sections 14.4.1, 17.5.2, 21.6.3
data(bjsim)
z <- dataSlice(bjsim,end=1500) # training set
mod_bj <- bj(z,c(2,1,1,1,2))
mod_bj
residplot(mod_bj) # residual plots
Run the code above in your browser using DataLab