Skip to contents

Generate objects of class mcSpec.

Usage

mcSpec(...)

# S4 method for mcSpec
initialize(.Object, dim, mo, root1 = numeric(0), iorder = 0,
           siorder = 0, order = rep(dim, mo), evtypes = NULL,
           mo.col = NULL, n.roots = mo.col, ...)

Arguments

dim

the dimension, a positive integer.

mo

multi-companion order, a.k.a. number of seasons.

root1

roots equal to one, a vector of positive integers of length at most mo.

iorder

integration order, a non-negative integer.

siorder

seasonal integration order, a non-negative integer.

order

order of the periodic filter, a vector of length mo.

evtypes

types of additional eigenvalues, see Details.

mo.col

number of non-zero columns in the top part of the multicompanion matrix, see Details.

n.roots

number of non-zero roots

...

further arguments to be passed on.

.Object

An object. This argument is not used in calls of mcSpec and new, see the details section.

Details

mcSpec(...) and new("mcSpec", ...) create objects from class mcSpec. The two calls are equivalent and may contain any of the arguments of the initialize method described here, except .Object which is generated automatically. In both cases the initialize method is called and passed all the arguments.

Several ways are provided for the specification of unit roots and they may be combined, as long as the specification is consistent.

roots1 specifies eigenvalues equal to 1 and the size of their Jordan chains. iorder and siorder provide convenient shortcuts for the special cases which they cover.

iorder specifies the integration order. This corresponds to operator \((1-B)\) applied iorder times.

Similarly, siorder specifies the seasonal integration order, which corresponds to the operator \((1-B^s)\) applied siorder times, where \(s\) is equal to mo. This argument generates mo unit roots, each of height (dimension of its Jordan chain) siorder.

It is possible to use combinations of these arguments to specify the unit roots and all specifications are combined. Care must be taken not to exceed dim.

If mo.col is missing, it is set to max(order). mo.col may also be the character string "+ones". In this case the dimension of the unit roots is added to max(order). mo.col may also be set directly by giving it an appropriate integer value. TODO: Need more checks for consistency here!

TODO: describe other roots and eigenvectors!

After all specified quantities are prepared, the rest are set to NA's.

If not all eigenvalues are specified, additional eigenvalues are introduced to reach dimension dim. By default, if an even number of eigenvalues is needed, all of them are specified as complex pairs, "cp". If the number is odd, one real eigenvalue is specified and the rest are set again to "cp".

Argument evtypes can be used to select a different setting for the additional eigenvalues. It is a character vector in which "r" stands for real eigenavalues and "cp" stands for a complex pair. For example, if there are two "free" eigenvalues, the automatic choice would be a complex pair, "cp". If two real eigenvalues are desired set evtypes to c("r","r").

Note: evtypes is for types of additional eigenvalues. Do not specify types for eigenvalues equal to one or zero.

Value

an object of class mcSpec

References

Boshnakov GN (2002). “Multi-companion matrices.” Linear Algebra Appl., 354, 53--83. ISSN 0024-3795, doi:10.1016/S0024-3795(01)00475-X .

Boshnakov GN, Iqelan BM (2009). “Generation of time series models with given spectral properties.” J. Time Series Anal., 30(3), 349--368. ISSN 0143-9782, doi:10.1111/j.1467-9892.2009.00617.x .

Author

Georgi N. Boshnakov

See also

Examples

spec2 <- mcSpec(21, 4, siorder=2, iorder=1)
spec4 <- mcSpec(11, 4, siorder=1, iorder=1)
spec.co2 <- mcSpec(dim = 5, mo = 4, siorder = 1)
spec.co2new <- mcSpec(dim = 5, mo = 4, siorder = 1) # after correcting ev.arg
spec.co2alt <- mcSpec(dim = 6, mo = 4, siorder = 1)

spec.co3 <- mcSpec(dim = 5, mo = 4, root1 = c(1,1,1))

spec.coz1 <- mcSpec(dim = 4, mo = 4, root1 = c(1,1), order = rep(2,4)) # test0 roots
spec.coz2 <- mcSpec(dim = 5, mo = 4, root1 = c(1,1), order = rep(2,4)) # test0 roots
spec.coz3 <- mcSpec(dim = 4, mo = 4, root1 = c(1), order = rep(2,4)) # test0 roots
spec.co4 <- mcSpec(dim = 4, mo = 4, root1 = c(1,1,1))