Fit a seasonal semiparametric autoregressive moving-average
(S-Semi-ARMA) model to a univariate time series. The estimation is
in two steps: firstly, the series is detrended and seasonally adjusted using the
function deseats
. Then an ARMA model is fitted to the
residuals using arima
.
s_semiarma(
yt,
smoothing_options = set_options(),
arma_options = list(ar_order = NULL, ma_order = NULL),
bwidth_start = 0.2,
inflation_rate = c("optimal", "naive"),
correction_factor = FALSE,
drop = NULL,
error_model = c("free", "ARMA"),
nar_lim = c(0, 3),
nma_lim = c(0, 3),
arma_mean = FALSE
)
The function returns and S4 object with the following elements (access them
via @
):
decomp
an object of class "mts"
that includes the
observed time series and its estimated components.
nonpar_model
an object of class "deseats"
; this is
the result of applying deseats
.
par_model
an object of class "Arima"
; the result of
applying arima
to the residuals of the nonparametric
estimation step.
a numerical vector or a time series object of class ts
or
that can be transformed with as.ts
to an object of class
ts
; for these observations, trend and seasonality will be obtained.
an S4 object of class smoothing_options
, which
is returned by the function set_options
; it
includes details about the
options to consider in the locally weighted regression, such as the order of
polynomial and the bandwidth for smoothing among others, for the nonparametric
part of the model; the nonparametric model is fitted using
deseats
.
a list with the two elements ar_order
and
ma_order
that indicates the AR and MA orders to consider for the
parametric part of the model.
a single numeric value that is only relevant if the slot
bwidth
in smoothing_options
is set to NA
;
as the bandwidth will then
be selected automatically, bwidth_start
sets the initial bandwidth for
the algorithm.
a character vector of length one that indicates, which inflation rate
to use in the bandwidth selection; for a local linear trend, we have
inflation_rate = "optimal"
as the default, for a local cubic trend
it is inflation_rate = "naive"
, which correspond to inflation rates
of 5/7 and 9/13, respectively.
A logical vector of length one; theoretically, a
larger bandwidth to estimate the sum of autocovariances from residuals of
pilot trend and seasonality estimates is advisable than for estimating trend
and seasonality; for correction_factor = TRUE
, this is implemented;
for error_model = "ARMA"
, correction_factor = FALSE
is
enforced; the default is correction_factor = FALSE
, because it was
found that setting this argument to TRUE
often overestimates the
bandwidth.
a numeric vector of length one that indicates the proportion of
the observations to not include at each boundary in the bandwidth estimation
process, if a bandwidth is selected automatically; the default is
drop = 0.1
.
a character vector of length one that indicates whether
for autocor = TRUE
the sum of autocovariances of the errors is
obtained purely nonparametrically ("free"
) or whether an
autoregressive moving-average (ARMA) model is assumed "ARMA"
; the
default is error_model = "free"
.
only valid for error_model = "ARMA"
; set the minimum and
maximum AR order to check via the BIC in each iteration of the algorithm via
a two-element vector.
only valid for error_model = "ARMA"
; set the minimum and
maximum MA order to check via the BIC in each iteration of the algorithm via
a two-element vector.
only valid for error_model = "ARMA"
; decide whether to
include an estimate of the mean in the ARMA fitting for the detrended series.
Dominik Schulz (Research Assistant) (Department of Economics, Paderborn
University),
Author and Package Creator
Yuanhua Feng (Department of Economics, Paderborn
University),
Author
For information on the nonparametric regression step, see
deseats
. After the trend and the seasonality have
been removed from the data, an autoregressive moving-average (ARMA) model
is fitted to the residuals either with orders selected by the Bayesian
information criterion (BIC) or with manually selected orders. The ARMA
model is fitted using arima
.
All function arguments except for arma_options
are identical to
those in deseats
. If all elements in
arma_options
are set to NULL
, the ARMA model orders are
selected for \(p, q\) from nar_lim[[1]]
and nma_lim[[1]]
up
until nar_lim[[2]]
and nma_lim[[2]]
according to the BIC.
# \donttest{
Xt <- log(EXPENDITURES)
est <- s_semiarma(Xt)
est
# }
Run the code above in your browser using DataLab