Last chance! 50% off unlimited learning
Sale ends in
Simultaneously estimate the trend and the seasonality via locally weighted regression in an equidistant time series under short memory. The default setting uses an iterative plug-in algorithm for identifying the asymptotically globally optimal bandwidth for smoothing.
deseats(
y,
smoothing_options = set_options(),
bwidth_start = NULL,
inflation_rate = c("optimal", "naive"),
correction_factor = FALSE,
autocor = TRUE,
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 @
):
boundary_method
the applied boundary method.
bwidth
the globally applied bandwidth in the smoothing process; if not if no input is given in the function call, this is the automatically selected optimal bandwidth.
decomp
An object of class "mts"
that consists of the
decomposed time series data.
frequency
the frequency of the time series.
kernel_fun
the second-order kernel function considered for weighting.
order_poly
the order of polynomial considered locally for the trend.
order_poly
the order of polynomial considered locally for the trend.
sum_autocov
the estimated sum of autocovariances.
ts_name
the object name of the initially provided time series object.
weights_wfun
a matrix that gives the weights of the weighting
function
weights
an array with many slices that represent the weighting
systems for various filters; each slice is a matrix, which gives the weighting
system to estimate a component, for example trend + seasonality, as a weighted
average from the given time series; if
"Trend"
, "Season"
and "Combined"
,
where "Combined"
are the weights to estimate trend + seasonality
combined.
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.
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; the default, bwidth_start = NULL
, corresponds to
bwidth_start = 0.1
for a local linear trend and to
bwidth_start = 0.2
for a local cubic trend.
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 logical vector of length one; indicates whether to consider
autocorrelated errors (TRUE
) or independent but identically
distributed errors (FALSE
); the default is autocor = TRUE
.
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 = NULL
, which corresponds to drop = 0.05
for a
local linear trend and to drop = 0.1
for a local cubic trend.
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
Trend and seasonality are estimated based on the additive
nonparametric regression model for an equidistant time series
It is assumed that
The iterative-plug-in (IPI) algorithm, which numerically minimizes the asymptotic mean squared error (AMISE) to select a bandwidth is an extension of Feng (2013) to the case with short-range dependence in the errors. To achieve this goal, the error variance in the AMISE in Feng (2013) is replaced by the sum of autocovariances of the error process and this quantity is being estimated using a slightly adjusted version of the Bühlmann (1996) algorithm. This procedure is similar to the method described in Feng, Gries and Fritz (2020), where data-driven local polynomial regression with an automatically selected bandwidth is used to estimate the trend according to a model without seasonality and where the same adjusted Bühlmann (1996) algorithm is considered to estimate the sum of autocovariances in the error process.
Define
Furthermore, we define
The function calculates suitable estimates for
To apply the function, only few arguments are needed: a data input y
,
an object with smoothing options smoothing_options
returned by
set_options
and
a starting value for the relative bandwidth
bwidth_start
. Aside from y
, each argument has a default setting.
By default, a local linear trend is considered. In some cases, a local cubic
trend may, however, be more suitable. For more specific information on the input arguments
consult the section Arguments.
When applying the function, an optimal bandwidth is obtained based on the IPI algorithm proposed by Feng, Gries and Fritz (2020). In a second step, the nonparametric trend of the series and the seasonality are calculated with respect to the chosen bandwidth.
Note that with this function errors = "autocor"
, can be fitted to the
residuals (see arima
).
Usually, a local cubic trend (smoothing_options = set_options(order_poly = 3)
)
gives more suitable results. Moreover, if the resulting bandwidth is too large,
adjustments to the arguments inflation_rate
and drop
should be
tried first in that order before any other changes
to the input arguments.
The default print method for this function delivers key numbers such as the bandwidth considered for smoothing.
NOTE:
This function implements C++ code by means
of the Rcpp
and
RcppArmadillo
packages for
better performance.
Bühlmann, P. (1996). Locally Adaptive Lag-Window Spectral Estimation. Journal of Time Series Analysis, 17(3): 247-270. DOI: 10.1111/j.1467-9892.1996.tb00275.x.
Feng, Y. (2013). An iterative plug-in algorithm for decomposing seasonal time series using the Berlin Method. Journal of Applied Statistics, 40(2): 266-281. DOI: 10.1080/02664763.2012.740626.
Feng, Y., Gries. T, and Fritz, M. (2020). Data-driven local polynomial for the trend and its derivatives in economic time series. Journal of Nonparametric Statistics, 32(2): 510-533. DOI: 10.1080/10485252.2020.1759598.
# \donttest{
Xt <- log(EXPENDITURES)
smoothing_options <- set_options(order_poly = 3)
est <- deseats(Xt, smoothing_options = smoothing_options)
est
plot(est, which = 1)
# }
Run the code above in your browser using DataLab