Learn R Programming

dse (version 2020.2-1)

roots: Calculate Model Roots

Description

Calculate roots of a TSmodel.

Usage

roots(obj, ...)
    # S3 method for SS
roots(obj, fuzz=0, randomize=FALSE, ...)
    # S3 method for ARMA
roots(obj, fuzz=0, randomize=FALSE, warn=TRUE, by.poly=FALSE, ...)
    # S3 method for TSestModel
roots(obj, ...)

Arguments

obj

An object of class TSmodel.

fuzz

If non-zero then roots within fuzz distance are considered equal.

randomize

Randomly arrange complex pairs of roots so the one with the positive imaginary part is not always first (so random experiments are not biased).

warn

If FALSE then warnings about unit roots added for TREND are not printed.

by.poly

If TRUE then roots are calculated by expanding the determinant of the A polynomial. Otherwise, they are calculated by converting to a state space representation and calculating the eigenvalues of F. This second method is preferable for speed, accuracy, and because of a limitation in the degree of a polynomial which can be handled by polyroot.

...

arguments passed to other methods.

Value

The eigenvalues of the state transition matrix or the inverse of the roots of the determinant of the AR polynomial are returned.

Details

The equality of roots for equivalent state space and ARMA models is illustrated in Gilbert (1993). The calculation of ARMA model roots is more stable if the model is converted to state space and the roots calculated from the state transition matrix (see Gilbert,2000). The calculation is done this way by default. If by.poly=TRUE then the determinant of the AR polynomial is expanded to get the roots.

References

Gilbert, P. D. (1993) State space and ARMA models: An overview of the equivalence. Working paper 93-4, Bank of Canada. Available at http://www.bankofcanada.ca/1993/03/publications/research/working-paper-199/

Gilbert, P.D. (2000) A note on the computation of time series model roots. Applied Economics Letters, 7, 423--424

See Also

stability, McMillanDegree

Examples

Run this code
# NOT RUN {
  data("eg1.DSE.data.diff", package="dse")
  model <- estVARXls(eg1.DSE.data.diff)
  roots(model)
  
# }

Run the code above in your browser using DataLab