mcSpec {mcompanion} | R Documentation |
Generate objects of class mcSpec
Description
Generate objects of class mcSpec.
Usage
mcSpec(...)
## S4 method for signature '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 |
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
|
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
|
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
Author(s)
Georgi N. Boshnakov
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.
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))