summaryrefslogtreecommitdiff
path: root/man/bj.Rd
blob: 24ec162b91f645d90f2dd041cbca700bd9fb00a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/estpoly.R
\name{bj}
\alias{bj}
\title{Estimate Box-Jenkins Models}
\usage{
bj(z, order = c(1, 1, 1, 1, 0), init_sys = NULL, options = optimOptions())
}
\arguments{
\item{z}{an \code{idframe} object containing the data}

\item{order}{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}

\item{options}{Estimation Options, setup using 
\code{\link{optimOptions}}}
}
\value{
An object of class \code{estpoly} containing the following elements:
 \item{sys}{an \code{idpoly} object containing the 
   fitted BJ coefficients}
 \item{fitted.values}{the predicted response}
 \item{residuals}{the residuals}
 \item{input}{the input data used}
 \item{call}{the matched call}
 \item{stats}{A list containing the following fields: \cr
     \code{vcov} - the covariance matrix of the fitted coefficients \cr
     \code{sigma} - the standard deviation of the innovations}
 \item{options}{Option set used for estimation. If no 
   custom options were configured, this is a set of default options}
 \item{termination}{Termination conditions for the iterative
    search used for prediction error minimization:
     \code{WhyStop} - Reason for termination \cr
     \code{iter} - Number of Iterations \cr
     \code{iter} - Number of Function Evaluations }
}
\description{
Fit a box-jenkins model of the specified order from input-output data
}
\details{
SISO BJ models are of the form 
\deqn{
   y[k] + f_1 y[k-1] + \ldots + f_{nf} y[k-nf] = b_{nk} u[k-nk] + 
   \ldots + b_{nk+nb} u[k-nk-nb] + f_{1} e[k-1] + \ldots f_{nf} e[k-nf]
   + 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 \code{\link{detrend}} function.
}
\examples{
data(bjsim)
z <- dataSlice(data,end=1500) # training set
mod_bj <- bj(z,c(2,1,1,1,2))
mod_bj 
residplot(mod_bj) # residual plots

}
\references{
Arun K. Tangirala (2015), \emph{Principles of System Identification: 
Theory and Practice}, CRC Press, Boca Raton. Sections 14.4.1, 17.5.2, 
21.6.3
}