| fit_mixAR-methods | R Documentation |
Estimate a MixAR model for a time series. This is a generic function. The methods defined in package mixAR are described here.
fit_mixAR(x, model, init, fix, ...)
x |
a time series. |
model |
model, object inheriting from MixAR class. |
init |
what initializations to do, see Details. |
fix |
which parameters to fix, see Details. |
... |
additional arguments for the methods. |
Method dispatch is done on the first three arguments:
x, model and init.
model specifies the model to fit. If model inherits from
"MixAR", it is used as a template. If init is missing,
the parameters of model are also used as initial values.
model can also be a numeric vector specifying the order of a
MixAR model with Gaussian components.
Argument init can be used to give initial values in variety of
ways. If it is a MixAR object it doesn't need to be of the same class
as model, to allow using as initial values common parameters
of different MixAR models. A positive integer value of init
asks to run the fitting procedure init times, each time
generating random initial values.
init can also be a list. In that case, each component of the
list should itself be an acceptable value for init and the
fitting procedure is run with each component of init.
Argument fix can be given in a number of ways. Note however
that currently there is no method dispatch on it.
Currently the default method for fit_mixAR just throws error,
since there seems no suitable default task to do.
See individual methods for further details.
a MixAR model or a list of MixAR models, depending on the arguments.
signature(x = "ANY", model = "ANY", init = "ANY")The default method throws error.
signature(x = "ANY", model = "MixAR", init = "missing")This is equivalent to setting init = model.
signature(x = "ANY", model = "MixAR", init = "MixAR")model is a template for the result, init specifies
initial values for the parameters. In principle, model and
init may be from different classes, to allow for example
using AR coefficients from a Gaussian fit for other distributions.
signature(x = "ANY", model = "MixAR", init = "numeric")init must be a single positive integer here. The model is
fitted init times, each time starting with a new set of
randomly generated initial values. If select is TRUE,
the default, the model with the largest likelihood is returned,
otherwise a list containing the init fitted models is
returned.
signature(x = "ANY", model = "MixAR", init = "list")Each element of the list init should be an acceptable value
for init. The model is fitted with the initial value set to each
element of init. A list containing the fitted models is
returned.
signature(x = "ANY", model = "MixARGaussian", init = "MixAR")signature(x = "ANY", model = "numeric", init = "missing")This is equivalent to setting init = 1.
signature(x = "ANY", model = "numeric", init = "numeric")A numeric model should be a vector of non-negative integers
specifying the order of the MixAR model. The distribution of the
components is assumed Gaussian.
## model coefficients from Wong&Li (IBM fit)
prob <- exampleModels$WL_ibm@prob # c(0.5439, 0.4176, 0.0385)
sigma <- exampleModels$WL_ibm@scale # c(4.8227, 6.0082, 18.1716)
ar <- exampleModels$WL_ibm@arcoef@a # list(c(0.6792, 0.3208), c(1.6711, -0.6711), 1)
## data(ibmclose, package = "fma") # `ibmclose'
mot30 <- new("MixARgen", prob = prob, scale = sigma, arcoef = ar,
dist = distlist("stdt", c(30, 30, 30)))
mot20_30_40 <- new("MixARgen", prob = prob, scale = sigma, arcoef = ar,
dist = distlist("stdt", c(20, 30, 40)))
mo_t20_t30_norm <- new("MixARgen", prob = prob, scale = sigma, arcoef = ar,
dist = distlist(c("stdt", "stdt", "stdnorm"), c(20, 30)))
## Gaussian components
fi0 <- fit_mixAR(fma::ibmclose, exampleModels$WL_ibm, fix = "shift", crit = 1e-4)
fi0$model
if(FALSE){ # don't run on CRAN to save a couple of seconds
## remove minniter/maxniter below for realistic results.
## std-t components
fi1 <- fit_mixAR(fma::ibmclose, mot30, fix = "shift",
crit = 1e-4, minniter = 1, maxniter = 3)
fi1$model
## 1st and 2nd components std-t, 3rd Gaussian
fi2 <- fit_mixAR(fma::ibmclose, mo_t20_t30_norm, fix = "shift",
crit = 1e-4, minniter = 1, maxniter = 3)
fi2$model
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.