Function to create (and/or modify) a c("SA_spec", "X13")
class object with the SA model specification for the X13 method.
It can be done from a pre-defined 'JDemetra+' model specification (a character
), a previous specification
(c("SA_spec", "X13")
object) or a seasonal adjustment model (c("SA", "X13")
object).
Usage
x13_spec(
spec = c("RSA5c", "RSA0", "RSA1", "RSA2c", "RSA3", "RSA4c", "X11"),
preliminary.check = NA,
estimate.from = NA_character_,
estimate.to = NA_character_,
estimate.first = NA_integer_,
estimate.last = NA_integer_,
estimate.exclFirst = NA_integer_,
estimate.exclLast = NA_integer_,
estimate.tol = NA_integer_,
transform.function = c(NA, "Auto", "None", "Log"),
transform.adjust = c(NA, "None", "LeapYear", "LengthOfPeriod"),
transform.aicdiff = NA_integer_,
usrdef.outliersEnabled = NA,
usrdef.outliersType = NA,
usrdef.outliersDate = NA,
usrdef.outliersCoef = NA,
usrdef.varEnabled = NA,
usrdef.var = NA,
usrdef.varType = NA,
usrdef.varCoef = NA,
tradingdays.option = c(NA, "TradingDays", "WorkingDays", "UserDefined", "None"),
tradingdays.autoadjust = NA,
tradingdays.leapyear = c(NA, "LeapYear", "LengthOfPeriod", "None"),
tradingdays.stocktd = NA_integer_,
tradingdays.test = c(NA, "Remove", "Add", "None"),
easter.enabled = NA,
easter.julian = NA,
easter.duration = NA_integer_,
easter.test = c(NA, "Add", "Remove", "None"),
outlier.enabled = NA,
outlier.from = NA_character_,
outlier.to = NA_character_,
outlier.first = NA_integer_,
outlier.last = NA_integer_,
outlier.exclFirst = NA_integer_,
outlier.exclLast = NA_integer_,
outlier.ao = NA,
outlier.tc = NA,
outlier.ls = NA,
outlier.so = NA,
outlier.usedefcv = NA,
outlier.cv = NA_integer_,
outlier.method = c(NA, "AddOne", "AddAll"),
outlier.tcrate = NA_integer_,
automdl.enabled = NA,
automdl.acceptdefault = NA,
automdl.cancel = NA_integer_,
automdl.ub1 = NA_integer_,
automdl.ub2 = NA_integer_,
automdl.mixed = NA,
automdl.balanced = NA,
automdl.armalimit = NA_integer_,
automdl.reducecv = NA_integer_,
automdl.ljungboxlimit = NA_integer_,
automdl.ubfinal = NA_integer_,
arima.mu = NA,
arima.p = NA_integer_,
arima.d = NA_integer_,
arima.q = NA_integer_,
arima.bp = NA_integer_,
arima.bd = NA_integer_,
arima.bq = NA_integer_,
arima.coefEnabled = NA,
arima.coef = NA,
arima.coefType = NA,
fcst.horizon = NA_integer_,
x11.mode = c(NA, "Undefined", "Additive", "Multiplicative", "LogAdditive",
"PseudoAdditive"),
x11.seasonalComp = NA,
x11.lsigma = NA_integer_,
x11.usigma = NA_integer_,
x11.trendAuto = NA,
x11.trendma = NA_integer_,
x11.seasonalma = NA_character_,
x11.fcasts = NA_integer_,
x11.bcasts = NA_integer_,
x11.calendarSigma = NA,
x11.sigmaVector = NA,
x11.excludeFcasts = NA,
benchmarking.enabled = NA,
benchmarking.target = c(NA, "Original", "CalendarAdjusted"),
benchmarking.useforecast = NA,
benchmarking.rho = NA_real_,
benchmarking.lambda = NA_real_
)
Arguments
- spec
an x13 model specification. It can be the 'JDemetra+' name (
character
) of a predefined X13 'JDemetra+' model specification (see Details), an object of classc("SA_spec","X13")
or an object of classc("SA", "X13")
. The default is"RSA5c"
.- preliminary.check
a Boolean to check the quality of the input series and exclude highly problematic ones (e.g. the series with a number of identical observations and/or missing values above pre-specified threshold values).
The time span of the series, which is the (sub)period used to estimate the regarima model, is controlled by the following six variables:
estimate.from, estimate.to, estimate.first, estimate.last, estimate.exclFirst
andestimate.exclLast
; whereestimate.from
andestimate.to
have priority over the remaining span control variables,estimate.last
andestimate.first
have priority overestimate.exclFirst
andestimate.exclLast
, andestimate.last
has priority overestimate.first
. Default= "All".- estimate.from
a character in format "YYYY-MM-DD" indicating the start of the time span (e.g. "1900-01-01"). It can be combined with the parameter
estimate.to
.- estimate.to
a character in format "YYYY-MM-DD" indicating the end of the time span (e.g. "2020-12-31"). It can be combined with the parameter
estimate.from
.- estimate.first
a numeric specifying the number of periods considered at the beginning of the series.
- estimate.last
numeric specifying the number of periods considered at the end of the series.
- estimate.exclFirst
a numeric specifying the number of periods excluded at the beginning of the series. It can be combined with the parameter
estimate.exclLast
.- estimate.exclLast
a numeric specifying the number of periods excluded at the end of the series. It can be combined with the parameter
estimate.exclFirst
.- estimate.tol
a numeric, convergence tolerance. The absolute changes in the log-likelihood function are compared to this value to check for the convergence of the estimation iterations.
- transform.function
the transformation of the input series:
"None"
= no transformation of the series;"Log"
= takes the log of the series;"Auto"
= the program tests for the log-level specification.- transform.adjust
pre-adjustment of the input series for the length of period or leap year effects:
"None"
= no adjustment;"LeapYear"
= leap year effect;"LengthOfPeriod"
= length of period. Modifications of this variable are taken into account only whentransform.function
is set to"Log"
.- transform.aicdiff
a numeric defining the difference in AICC needed to accept no transformation when the automatic transformation selection is chosen (considered only when
transform.function
is set to"Auto"
).Control variables for the pre-specified outliers. The pre-specified outliers are used in the model only when enabled (
usrdef.outliersEnabled=TRUE
) and the outlier type (usrdef.outliersType
) and date (usrdef.outliersDate
) are provided.- usrdef.outliersEnabled
logical. If
TRUE
, the program uses the pre-specified outliers.- usrdef.outliersType
a vector defining the outlier type. Possible types are:
("AO")
= additive,("LS")
= level shift,("TC")
= transitory change,("SO")
= seasonal outlier. E.g.:usrdef.outliersType = c("AO","AO","LS")
.- usrdef.outliersDate
a vector defining the outlier dates. The dates should be characters in format "YYYY-MM-DD". E.g.:
usrdef.outliersDate= c("2009-10-01","2005-02-01","2003-04-01")
.- usrdef.outliersCoef
a vector providing fixed coefficients for the outliers. The coefficients can't be fixed if
transform.function
is set to"Auto"
i.e. the series transformation need to be pre-defined. E.g.:usrdef.outliersCoef=c(200,170,20)
.Control variables for the user-defined variables:
- usrdef.varEnabled
a logical. If
TRUE
, the program uses the user-defined variables.- usrdef.var
a time series (
ts
) or a matrix of time series (mts
) with the user-defined variables.- usrdef.varType
a vector of character(s) defining the user-defined variables component type. Possible types are:
"Undefined", "Series", "Trend", "Seasonal", "SeasonallyAdjusted", "Irregular", "Calendar"
. The type"Calendar"
must be used withtradingdays.option = "UserDefined"
to use user-defined calendar regressors. If not specified, the program will assign the"Undefined"
type.- usrdef.varCoef
a vector providing fixed coefficients for the user-defined variables. The coefficients can't be fixed if
transform.function
is set to"Auto"
i.e. the series transformation need to be pre-defined.- tradingdays.option
to specify the set of trading days regression variables:
"TradingDays"
= six day-of-the-week regression variables;"WorkingDays"
= one working/non-working day contrast variable;"None"
= no correction for trading days and working days effects;"UserDefined"
= user-defined trading days regressors (regressors must be defined by theusrdef.var
argument withusrdef.varType
set to"Calendar"
andusrdef.varEnabled = TRUE
)."None"
must also be specified for the "day-of-week effects" correction (tradingdays.stocktd
to be modified accordingly).- tradingdays.autoadjust
a logical. If
TRUE
, the program corrects automatically for the leap year effect. Modifications of this variable are taken into account only whentransform.function
is set to"Auto"
.- tradingdays.leapyear
a
character
to specify whether or not to include the leap-year effect in the model:"LeapYear"
= leap year effect;"LengthOfPeriod"
= length of period,"None"
= no effect included. The leap-year effect can be pre-specified in the model only if the input series hasn't been pre-adjusted (transform.adjust
set to"None"
) and if the automatic correction for the leap-year effect isn't selected (tradingdays.autoadjust
set toFALSE
).- tradingdays.stocktd
a numeric indicating the day of the month when inventories and other stock are reported (to denote the last day of the month, set the variable to 31). Modifications of this variable are taken into account only when
tradingdays.option
is set to"None"
.- tradingdays.test
defines the pre-tests for the significance of the trading day regression variables based on the AICC statistics:
"Add"
= the trading day variables are not included in the initial regression model but can be added to the RegARIMA model after the test;"Remove"
= the trading day variables belong to the initial regression model but can be removed from the RegARIMA model after the test;"None"
= the trading day variables are not pre-tested and are included in the model.- easter.enabled
a logical. If
TRUE
, the program considers the Easter effect in the model.- easter.julian
a logical. If
TRUE
, the program uses the Julian Easter (expressed in Gregorian calendar).- easter.duration
a numeric indicating the duration of the Easter effect (length in days, between 1 and 20).
- easter.test
defines the pre-tests for the significance of the Easter effect based on the t-statistic (the Easter effect is considered as significant if the t-statistic is greater than 1.96):
"Add"
= the Easter effect variable is not included in the initial regression model but can be added to the RegARIMA model after the test;"Remove"
= the Easter effect variable belongs to the initial regression model but can be removed from the RegARIMA model after the test;"None"
= the Easter effect variable is not pre-tested and is included in the model.- outlier.enabled
a logical. If
TRUE
, the automatic detection of outliers is enabled in the defined time span.The time span during which outliers will be searched is controlled by the following six variables:
outlier.from, outlier.to, outlier.first, outlier.last, outlier.exclFirst
andoutlier.exclLast
; whereoutlier.from
andoutlier.to
have priority over the remaining span control variables,outlier.last
andoutlier.first
have priority overoutlier.exclFirst
andoutlier.exclLast
, andoutlier.last
has priority overoutlier.first
.- outlier.from
a character in format "YYYY-MM-DD" indicating the start of the time span (e.g. "1900-01-01"). It can be combined with the parameter
outlier.to
.- outlier.to
a character in format "YYYY-MM-DD" indicating the end of the time span (e.g. "2020-12-31"). it can be combined with the parameter
outlier.from
.- outlier.first
a numeric specifying the number of periods considered at the beginning of the series.
- outlier.last
a numeric specifying the number of periods considered at the end of the series.
- outlier.exclFirst
a numeric specifying the number of periods excluded at the beginning of the series. It can be combined with the parameter
outlier.exclLast
.- outlier.exclLast
a numeric specifying the number of periods excluded at the end of the series. It can be combined with the parameter
outlier.exclFirst
.- outlier.ao
a logical. If
TRUE
, the automatic detection of additive outliers is enabled (outlier.enabled
must be also set toTRUE
).- outlier.tc
a logical. If
TRUE
, the automatic detection of transitory changes is enabled (outlier.enabled
must be also set toTRUE
).- outlier.ls
a logical. If
TRUE
, the automatic detection of level shifts is enabled (outlier.enabled
must be also set toTRUE
).- outlier.so
a logical. If
TRUE
, the automatic detection of seasonal outliers is enabled (outlier.enabled
must be also set toTRUE
).- outlier.usedefcv
a logical. If
TRUE
, the critical value for the outlier detection procedure is automatically determined by the number of observations in the outlier detection time span. IfFALSE
, the procedure uses the entered critical value (outlier.cv
).- outlier.cv
a numeric. The entered critical value for the outlier detection procedure. The modification of this variable is only taken into account when
outlier.usedefcv
is set toFALSE
.- outlier.method
determines how the program successively adds detected outliers to the model. At present, only the
AddOne
method is supported.- outlier.tcrate
a numeric. The rate of decay for the transitory change outlier.
- automdl.enabled
a logical. If
TRUE
, the automatic modelling of the ARIMA model is enabled. IfFALSE
, the parameters of the ARIMA model can be specified.Control variables for the automatic modelling of the ARIMA model (when
automdl.enabled
is set toTRUE
):- automdl.acceptdefault
a logical. If
TRUE
, the default model (ARIMA(0,1,1)(0,1,1)) may be chosen in the first step of the automatic model identification. If the Ljung-Box Q statistics for the residuals is acceptable, the default model is accepted and no further attempt will be made to identify another model.- automdl.cancel
the cancellation limit (
numeric
). If the difference in moduli of an AR and an MA roots (when estimating ARIMA(1,0,1)(1,0,1) models in the second step of the automatic identification of the differencing orders) is smaller than the cancellation limit, the two roots are assumed equal and cancel out.- automdl.ub1
the first unit root limit (
numeric
). It is the threshold value for the initial unit root test in the automatic differencing procedure. When one of the roots in the estimation of the ARIMA(2,0,0)(1,0,0) plus mean model, performed in the first step of the automatic model identification procedure, is larger than the first unit root limit in modulus, it is set equal to unity.- automdl.ub2
the second unit root limit (
numeric
). When one of the roots in the estimation of the ARIMA(1,0,1)(1,0,1) plus mean model, which is performed in the second step of the automatic model identification procedure, is larger than second unit root limit in modulus, it is checked if there is a common factor in the corresponding AR and MA polynomials of the ARMA model that can be canceled (seeautomdl.cancel
). If there is no cancellation, the AR root is set equal to unity (i.e. the differencing order changes).- automdl.mixed
a logical. This variable controls whether ARIMA models with non-seasonal AR and MA terms or seasonal AR and MA terms will be considered in the automatic model identification procedure. If
FALSE
, a model with AR and MA terms in both the seasonal and non-seasonal parts of the model can be acceptable, provided there are no AR or MA terms in either the seasonal or non-seasonal terms.- automdl.balanced
a logical. If
TRUE
, the automatic model identification procedure will have a preference for balanced models (i.e. models for which the order of the combined AR and differencing operator is equal to the order of the combined MA operator).- automdl.armalimit
the ARMA limit (
numeric
). It is the threshold value for t-statistics of ARMA coefficients and constant term used for the final test of model parsimony. If the highest order ARMA coefficient has a t-value smaller than this value in magnitude, the order of the model is reduced. If the constant term t-value is smaller than the ARMA limit in magnitude, it is removed from the set of regressors.- automdl.reducecv
numeric, ReduceCV. The percentage by which the outlier's critical value will be reduced when an identified model is found to have a Ljung-Box statistic with an unacceptable confidence coefficient. The parameter should be between 0 and 1, and will only be active when automatic outlier identification is enabled. The reduced critical value will be set to (1-ReduceCV)*CV, where CV is the original critical value.
- automdl.ljungboxlimit
the Ljung Box limit (
numeric
). Acceptance criterion for the confidence intervals of the Ljung-Box Q statistic. If the LjungBox Q statistics for the residuals of a final model is greater than the Ljung Box limit, then the model is rejected, the outlier critical value is reduced and model and outlier identification (if specified) is redone with a reduced value.- automdl.ubfinal
numeric, final unit root limit. The threshold value for the final unit root test. If the magnitude of an AR root for the final model is smaller than the final unit root limit, then a unit root is assumed, the order of the AR polynomial is reduced by one and the appropriate order of the differencing (non-seasonal, seasonal) is increased. The parameter value should be greater than one.
Control variables for the non-automatic modelling of the ARIMA model (when
automdl.enabled
is set toFALSE
):- arima.mu
logical. If
TRUE
, the mean is considered as part of the ARIMA model.- arima.p
numeric. The order of the non-seasonal autoregressive (AR) polynomial.
- arima.d
numeric. The regular differencing order.
- arima.q
numeric. The order of the non-seasonal moving average (MA) polynomial.
- arima.bp
numeric. The order of the seasonal autoregressive (AR) polynomial.
- arima.bd
numeric. The seasonal differencing order.
- arima.bq
numeric. The order of the seasonal moving average (MA) polynomial.
Control variables for the user-defined ARMA coefficients. Coefficients can be defined for the regular and seasonal autoregressive (AR) polynomials and moving average (MA) polynomials. The model considers the coefficients only if the procedure for their estimation (
arima.coefType
) is provided, and the number of provided coefficients matches the sum of (regular and seasonal) AR and MA orders (p,q,bp,bq
).- arima.coefEnabled
logical. If
TRUE
, the program uses the user-defined ARMA coefficients.- arima.coef
a vector providing the coefficients for the regular and seasonal AR and MA polynomials. The vector length must be equal to the sum of the regular and seasonal AR and MA orders. The coefficients shall be provided in the following order: regular AR (Phi;
p
elements), regular MA (Theta;q
elements), seasonal AR (BPhi;bp
elements) and seasonal MA (BTheta;bq
elements). E.g.:arima.coef=c(0.6,0.7)
witharima.p=1, arima.q=0,arima.bp=1
andarima.bq=0
.- arima.coefType
a vector defining the ARMA coefficients estimation procedure. Possible procedures are:
"Undefined"
= no use of any user-defined input (i.e. coefficients are estimated),"Fixed"
= the coefficients are fixed at the value provided by the user,"Initial"
= the value defined by the user is used as the initial condition. For orders for which the coefficients shall not be defined, thearima.coef
can be set toNA
or0
, or thearima.coefType
can be set to"Undefined"
. E.g.:arima.coef = c(-0.8,-0.6,NA)
,arima.coefType = c("Fixed","Fixed","Undefined")
.- fcst.horizon
the forecasting horizon (
numeric
). The forecast length generated by the RegARIMA model in periods (positive values) or years (negative values). By default, the program generates a two-year forecast (fcst.horizon
set to-2
).- x11.mode
character: the decomposition mode. Determines the mode of the seasonal adjustment decomposition to be performed:
"Undefined"
- no assumption concerning the relationship between the time series components is made;"Additive"
- assumes an additive relationship;"Multiplicative"
- assumes a multiplicative relationship;"LogAdditive"
- performs an additive decomposition of the logarithms of the series being adjusted;"PseudoAdditive"
- assumes an pseudo-additive relationship. Could be changed by the program, if needed.- x11.seasonalComp
logical: if
TRUE
, the program computes a seasonal component. Otherwise, the seasonal component is not estimated and its values are all set to 0 (additive decomposition) or 1 (multiplicative decomposition).- x11.lsigma
numeric: the lower sigma boundary for the detection of extreme values, > 0.5, default=1.5.
- x11.usigma
numeric: the upper sigma boundary for the detection of extreme values, > lsigma, default=2.5.
- x11.trendAuto
logical: automatic Henderson filter. If
TRUE
, an automatic selection of the Henderson filter's length for the trend estimation is enabled.- x11.trendma
numeric: the length of the Henderson filter. The user-defined length of the Henderson filter. The option is available when the automatic Henderson filter selection is disabled (
x11.trendAuto=FALSE
). Should be an odd number in the range (1, 101].- x11.seasonalma
a vector of character(s) specifying which seasonal moving average (i.e. seasonal filter) will be used to estimate the seasonal factors for the entire series. The vector can be of length: 1 - the same seasonal filter is used for all periods (e.g.: `seasonal.filter = "Msr"` or `seasonal.filter = "S3X3"` ); or have a different value for each quarter (length 4) or each month (length 12) - (e.g. for quarterly series: `seasonal.filter = c("S3X3", "Msr", "S3X3", "Msr")`). Possible filters are: `"Msr"`, `"Stable"`, `"X11Default"`, `"S3X1"`, `"S3X3"`, `"S3X5"`, `"S3X9"`, `"S3X15"`. `"Msr"` - the program chooses the final seasonal filter automatically.
- x11.fcasts
numeric: the number of forecasts generated by the RegARIMA model in periods (positive values) or years (negative values).Default value: fcasts=-1.
- x11.bcasts
numeric: the number of backcasts used in X11. Negative figures are translated in years of backcasts. Default value: bcasts=0.
- x11.calendarSigma
character to specify if the standard errors used for extreme values detection and adjustment are computed: from 5 year spans of irregulars (
"None"
, the default); separately for each calendar month/quarter ("All"
); separately for each period only if Cochran’s hypothesis test determines that the irregular component is heteroskedastic by calendar month/quarter ("Signif"
); separately for two complementary sets of calendar months/quarters specified by the x11.sigmaVector parameter ("Select"
, see parameterx11.sigmaVector
).- x11.sigmaVector
a vector to specify one of the two groups of periods for whose standard errors used for extreme values detection and adjustment will be computed. Only used if
x11.calendarSigma = "Select"
. Possible values are: "Group1" and "Group2".- x11.excludeFcasts
logical: to exclude forecasts and backcasts. If
TRUE
, the RegARIMA model forecasts and backcasts are not used during the detection of extreme values in the seasonal adjustment routines.- benchmarking.enabled
logical: to enable benchmarking. If
TRUE
, the benchmarking is enabled.- benchmarking.target
character: the target of the benchmarking procedure, which can be the raw series (
"Original"
) or the series the adjusted for calendar effects ("CalendarAdjusted"
).- benchmarking.useforecast
logical: If
TRUE
, the forecasts of the seasonally adjusted variable and of the target variable are used in the benchmarking computation so the benchmarking constrains is also applied to the forecasting period.- benchmarking.rho
numeric: the value of the AR(1) parameter (set between 0 and 1) in the function used for benchmarking.
- benchmarking.lambda
numeric: a parameter used for benchmarking that relatesto to the weights in the regression equation. It is typically equal to 0, 1/2 or 1.
Value
A two-element list of class c("SA_spec", "X13")
, containing:
(1) an object of class c("regarima_spec", "X13")
with the RegARIMA model specification;
(2) an object of class c("X11_spec", "data.frame")
with the X11 algorithm specification.
Each component refers to different parts of the SA model specification, mirroring the arguments of the function (for details,
see the function arguments in the description).
Each lowest-level component (except span, pre-specified outliers, user-defined variables and pre-specified ARMA coefficients)
is structured as a data frame with columns denoting different variables of the model specification and rows referring to:
first row: the base specification, as provided within the argument
spec
;second row: user modifications as specified by the remaining arguments of the function (e.g.:
arima.d
);and third row: the final model specification.
The final specification (third row) shall include user modifications (row two) unless they were wrongly specified. The pre-specified outliers, user-defined variables and pre-specified ARMA coefficients consist of a list of
Predefined
(base model specification) andFinal
values.regarima
: an object of classc("regarima_spec", "x13")
. See Value of the functionregarima_spec_x13
.x11
: a data.frame of classc("X11_spec", "data.frame")
, containing the x11 variables in line with the names of the arguments variables. The final values can be also accessed with the functions_x11
.
Details
The available predefined 'JDemetra+' model specifications are described in the table below:
Identifier | | Log/level detection | | Outliers detection | | Calendar effects | | ARIMA | RSA0 | | NA | |
NA | | NA | | Airline(+mean) | RSA1 | | automatic | | AO/LS/TC | | NA | |
Airline(+mean) | RSA2c | | automatic | | AO/LS/TC | | 2 td vars + Easter | | Airline(+mean) | RSA3 | |
automatic | | AO/LS/TC | | NA | | automatic | RSA4c | | automatic | | AO/LS/TC | |
2 td vars + Easter | | automatic | RSA5c | | automatic | | AO/LS/TC | | 7 td vars + Easter | | automatic |
References
More information and examples related to 'JDemetra+' features in the online documentation: https://jdemetra-new-documentation.netlify.app/ BOX G.E.P. and JENKINS G.M. (1970), "Time Series Analysis: Forecasting and Control", Holden-Day, San Francisco.
BOX G.E.P., JENKINS G.M., REINSEL G.C. and LJUNG G.M. (2015), "Time Series Analysis: Forecasting and Control", John Wiley & Sons, Hoboken, N. J., 5th edition.
Examples
# \donttest{
myseries <- ipi_c_eu[, "FR"]
myspec1 <- x13_spec(spec = "RSA5c")
myreg1 <- x13(myseries, spec = myspec1)
# To modify a pre-specified model specification
myspec2 <- x13_spec(spec = "RSA5c", tradingdays.option = "WorkingDays")
myreg2 <- x13(myseries, spec = myspec2)
# To modify the model specification of a "X13" object
myspec3 <- x13_spec(myreg1, tradingdays.option = "WorkingDays")
myreg3 <- x13(myseries, myspec3)
# To modify the model specification of a "X13_spec" object
myspec4 <- x13_spec(myspec1, tradingdays.option = "WorkingDays")
myreg4 <- x13(myseries, myspec4)
# Pre-specified outliers
myspec1 <- x13_spec(spec = "RSA5c", usrdef.outliersEnabled = TRUE,
usrdef.outliersType = c("LS", "AO"),
usrdef.outliersDate = c("2008-10-01", "2002-01-01"),
usrdef.outliersCoef = c(36, 14),
transform.function = "None")
myreg1 <- x13(myseries, myspec1)
myreg1
#> RegARIMA
#> y = regression model + arima (2, 1, 1, 0, 1, 1)
#> Log-transformation: no
#> Coefficients:
#> Estimate Std. Error
#> Phi(1) 0.07859 0.114
#> Phi(2) 0.19792 0.076
#> Theta(1) -0.48272 0.111
#> BTheta(1) -0.65916 0.043
#>
#> Estimate Std. Error
#> Monday 0.64094 0.228
#> Tuesday 0.81794 0.229
#> Wednesday 1.05374 0.229
#> Thursday 0.06981 0.228
#> Friday 0.93434 0.228
#> Saturday -1.63686 0.226
#> Leap year 2.11550 0.697
#> Easter [1] -2.38135 0.451
#> AO (9-2008) 31.95554 2.924
#> LS (9-2008) -57.04093 2.657
#> TC (4-2020) -35.62104 2.120
#> AO (3-2020) -21.00931 2.145
#> AO (5-2011) 13.21877 1.832
#> TC (9-2008) 23.44654 4.001
#> TC (12-2001) -20.47521 2.922
#> AO (12-2001) 17.13461 2.962
#> TC (2-2002) 10.61731 1.937
#>
#> Fixed outliers:
#> Coefficients
#> LS (10-2008) 36
#> AO (1-2002) 14
#>
#>
#> Residual standard error: 2.178 on 337 degrees of freedom
#> Log likelihood = -792.6, aic = 1629 aicc = 1632, bic(corrected for length) = 1.901
#>
#>
#>
#> Decomposition
#> Monitoring and Quality Assessment Statistics:
#> M stats
#> M(1) 0.151
#> M(2) 0.097
#> M(3) 1.206
#> M(4) 0.558
#> M(5) 1.041
#> M(6) 0.037
#> M(7) 0.082
#> M(8) 0.242
#> M(9) 0.062
#> M(10) 0.267
#> M(11) 0.252
#> Q 0.366
#> Q-M2 0.399
#>
#> Final filters:
#> Seasonal filter: 3x5
#> Trend filter: 13 terms Henderson moving average
#>
#>
#> Final
#> Last observed values
#> y sa t s i
#> Jan 2020 101.0 102.89447 102.9447 -1.89446776 -0.0502488
#> Feb 2020 100.1 103.56224 102.9860 -3.46224124 0.5762734
#> Mar 2020 91.8 82.81896 103.2071 8.98103618 -20.3881828
#> Apr 2020 66.7 66.62390 103.6164 0.07610348 -36.9925073
#> May 2020 73.7 78.88976 104.0255 -5.18976181 -25.1357871
#> Jun 2020 98.2 87.30845 104.3450 10.89154932 -17.0365408
#> Jul 2020 97.4 92.39390 104.4861 5.00609785 -12.0921816
#> Aug 2020 71.7 97.51560 104.3380 -25.81559971 -6.8224392
#> Sep 2020 104.7 97.40102 103.9044 7.29897634 -6.5033820
#> Oct 2020 106.7 98.39408 103.3109 8.30592464 -4.9168409
#> Nov 2020 101.6 100.23574 102.7824 1.36426365 -2.5467131
#> Dec 2020 96.6 99.67219 102.4984 -3.07218537 -2.8261840
#>
#> Forecasts:
#> y_f sa_f t_f s_f i_f
#> Jan 2021 94.41766 101.0272 102.4220 -6.60952495 -1.39481900
#> Feb 2021 97.82331 101.6172 102.4196 -3.79385040 -0.80247216
#> Mar 2021 114.01485 102.1273 102.3712 11.88751670 -0.24388469
#> Apr 2021 102.04691 102.0672 102.2273 -0.02033583 -0.16002624
#> May 2021 95.95071 101.4262 102.0682 -5.47547024 -0.64200227
#> Jun 2021 112.61492 101.2166 101.9501 11.39833187 -0.73348910
#> Jul 2021 104.00289 101.5502 101.9316 2.45263829 -0.38137799
#> Aug 2021 79.03331 102.3155 102.0544 -23.28216183 0.26109558
#> Sep 2021 108.98851 102.3414 102.2480 6.64711680 0.09343944
#> Oct 2021 108.49736 102.1909 102.4372 6.30644391 -0.24626669
#> Nov 2021 106.32534 102.4451 102.6074 3.88025741 -0.16229864
#> Dec 2021 99.71313 102.9154 102.7518 -3.20223190 0.16356694
#>
#>
#> Diagnostics
#> Relative contribution of the components to the stationary
#> portion of the variance in the original series,
#> after the removal of the long term trend
#> Trend computed by Hodrick-Prescott filter (cycle length = 8.0 years)
#> Component
#> Cycle 1.625
#> Seasonal 41.918
#> Irregular 0.727
#> TD & Hol. 1.851
#> Others 55.678
#> Total 101.800
#>
#> Combined test in the entire series
#> Non parametric tests for stable seasonality
#> P.value
#> Kruskall-Wallis test 0.000
#> Test for the presence of seasonality assuming stability 0.000
#> Evolutive seasonality test 0.042
#>
#> Identifiable seasonality present
#>
#> Residual seasonality tests
#> P.value
#> qs test on sa 0.974
#> qs test on i 0.779
#> f-test on sa (seasonal dummies) 0.921
#> f-test on i (seasonal dummies) 0.826
#> Residual seasonality (entire series) 0.770
#> Residual seasonality (last 3 years) 0.894
#> f-test on sa (td) 0.974
#> f-test on i (td) 0.988
#>
#>
#> Additional output variables
s_preOut(myreg1)
#> type date coeff
#> 1 LS 2008-10-01 36
#> 2 AO 2002-01-01 14
# User-defined calendar regressors
var1 <- ts(rnorm(length(myseries))*10, start = start(myseries), frequency = 12)
var2 <- ts(rnorm(length(myseries))*100, start = start(myseries), frequency = 12)
var <- ts.union(var1, var2)
myspec1 <- x13_spec(spec = "RSA5c", tradingdays.option = "UserDefined",
usrdef.varEnabled = TRUE,
usrdef.var = var,
usrdef.varType = c("Calendar", "Calendar"))
#> Warning: With tradingdays.option = "UserDefined", the parameters tradingdays.autoadjust, tradingdays.leapyear and tradingdays.stocktd are ignored.
myreg1 <- x13(myseries, myspec1)
myreg1
#> RegARIMA
#> y = regression model + arima (3, 1, 1, 0, 1, 1)
#> Log-transformation: no
#> Coefficients:
#> Estimate Std. Error
#> Phi(1) 0.3595 0.209
#> Phi(2) 0.1177 0.210
#> Phi(3) -0.3259 0.155
#> Theta(1) -0.6771 0.192
#> BTheta(1) -0.7343 0.039
#>
#> Estimate Std. Error
#> Easter [8] -2.891 0.686
#> TC (4-2020) -36.231 2.021
#> AO (3-2020) -22.969 2.463
#> LS (11-2008) -12.368 1.610
#> AO (5-2011) 9.825 2.265
#> TC (2-2009) -8.128 1.857
#>
#>
#> Residual standard error: 2.839 on 347 degrees of freedom
#> Log likelihood = -889.4, aic = 1803 aicc = 1804, bic(corrected for length) = 2.267
#>
#>
#>
#> Decomposition
#> Monitoring and Quality Assessment Statistics:
#> M stats
#> M(1) 0.376
#> M(2) 0.310
#> M(3) 3.000
#> M(4) 0.733
#> M(5) 2.377
#> M(6) 0.514
#> M(7) 0.116
#> M(8) 0.294
#> M(9) 0.074
#> M(10) 0.369
#> M(11) 0.334
#> Q 0.818
#> Q-M2 0.881
#>
#> Final filters:
#> Seasonal filter: 3x5
#> Trend filter: 23-Henderson
#>
#>
#> Final
#> Last observed values
#> y sa t s i
#> Jan 2020 101.0 103.76443 103.7718 -2.764432 -0.007371637
#> Feb 2020 100.1 104.34515 103.9252 -4.245147 0.419965250
#> Mar 2020 91.8 81.04300 104.1168 10.757002 -23.073821166
#> Apr 2020 66.7 68.07471 104.2936 -1.374714 -36.218923904
#> May 2020 73.7 77.34542 104.4050 -3.645424 -27.059534745
#> Jun 2020 98.2 88.68292 104.4313 9.517080 -15.748342655
#> Jul 2020 97.4 93.46921 104.3778 3.930791 -10.908580688
#> Aug 2020 71.7 95.43752 104.2570 -23.737519 -8.819459329
#> Sep 2020 104.7 99.17267 104.0850 5.527329 -4.912314376
#> Oct 2020 106.7 97.12864 103.8669 9.571357 -6.738282414
#> Nov 2020 101.6 99.69487 103.6276 1.905134 -3.932784061
#> Dec 2020 96.6 102.36060 103.4003 -5.760595 -1.039736263
#>
#> Forecasts:
#> y_f sa_f t_f s_f i_f
#> Jan 2021 98.44952 101.2056 103.1901 -2.7560785 -1.98454698
#> Feb 2021 98.43821 102.5471 103.0165 -4.1088538 -0.46944312
#> Mar 2021 110.75460 101.9734 102.8973 8.7811716 -0.92383422
#> Apr 2021 103.71542 102.9016 102.8411 0.8138272 0.06051994
#> May 2021 99.53055 103.1863 102.8510 -3.6557369 0.33528360
#> Jun 2021 111.31381 101.6749 102.8754 9.6388933 -1.20051449
#> Jul 2021 105.69802 101.5389 102.9077 4.1591091 -1.36882965
#> Aug 2021 79.42133 103.3872 102.9666 -23.9658420 0.42058783
#> Sep 2021 108.59095 102.9687 103.0586 5.6222373 -0.08983556
#> Oct 2021 112.00799 102.4761 103.1532 9.5318659 -0.67704911
#> Nov 2021 105.36088 103.8747 103.2467 1.4862299 0.62793860
#> Dec 2021 98.66941 104.3502 103.4522 -5.6808324 0.89800432
#>
#>
#> Diagnostics
#> Relative contribution of the components to the stationary
#> portion of the variance in the original series,
#> after the removal of the long term trend
#> Trend computed by Hodrick-Prescott filter (cycle length = 8.0 years)
#> Component
#> Cycle 1.963
#> Seasonal 59.842
#> Irregular 3.416
#> TD & Hol. 0.172
#> Others 34.046
#> Total 99.439
#>
#> Combined test in the entire series
#> Non parametric tests for stable seasonality
#> P.value
#> Kruskall-Wallis test 0.000
#> Test for the presence of seasonality assuming stability 0.000
#> Evolutive seasonality test 0.269
#>
#> Identifiable seasonality present
#>
#> Residual seasonality tests
#> P.value
#> qs test on sa 0.000
#> qs test on i 0.002
#> f-test on sa (seasonal dummies) 0.813
#> f-test on i (seasonal dummies) 0.754
#> Residual seasonality (entire series) 0.568
#> Residual seasonality (last 3 years) 1.000
#> f-test on sa (td) 0.000
#> f-test on i (td) 0.000
#>
#>
#> Additional output variables
myspec2 <- x13_spec(spec = "RSA5c", usrdef.varEnabled = TRUE,
usrdef.var = var1, usrdef.varCoef = 2,
transform.function = "None")
myreg2 <- x13(myseries, myspec2)
s_preVar(myreg2)
#> $series
#> Jan Feb Mar Apr May
#> 1990 -4.93380941 -12.28615839 12.84563150 12.11780172 0.17867075
#> 1991 17.91430812 -8.01034578 -5.57933180 7.56117489 -0.65654280
#> 1992 6.99530402 -4.78932287 -13.14202741 -9.03645819 -6.82677769
#> 1993 6.85714751 -15.74190181 -10.39202637 10.62892692 -12.79380891
#> 1994 6.55348285 2.08748369 4.79304525 11.19721889 3.58970059
#> 1995 -16.27036866 10.95973351 -11.30615770 7.49407597 5.07040903
#> 1996 -16.41368825 1.85576753 8.08139505 4.62741902 -1.40862948
#> 1997 21.10958544 1.06319181 2.88638282 -8.28129022 2.59246188
#> 1998 7.49492399 13.68161796 8.09041925 10.52043916 15.76710173
#> 1999 14.61477127 -3.93734253 5.88577012 -10.59461309 7.02083603
#> 2000 -4.70589637 26.18843475 17.81970431 3.11227898 6.04652922
#> 2001 6.97447152 8.50194263 -2.82469962 10.56820511 -1.64563751
#> 2002 6.45915651 2.86538618 -19.55302496 -0.70122520 -19.93476957
#> 2003 -4.71600217 -3.86758443 -0.32921492 -15.89925204 -16.31630380
#> 2004 -15.66243530 -8.27262343 10.43432242 -5.61818713 4.58990225
#> 2005 -13.44497531 -0.07853537 -7.09360740 14.19910316 21.00753869
#> 2006 16.38748991 7.14250476 0.21730272 -7.10864161 0.67650247
#> 2007 19.42670865 4.54756408 -4.35878269 16.42250741 -1.19391302
#> 2008 -6.44304935 -3.17781887 -26.11142582 -4.04070180 19.63939389
#> 2009 -4.30394846 13.18921431 7.86662563 3.90908196 5.55016634
#> 2010 -3.55226178 9.79276002 -11.74070697 -3.96460863 0.28959344
#> 2011 3.71975670 7.52496103 -8.44102704 -14.74703765 -1.27286512
#> 2012 3.04153582 -1.56110528 6.66411599 -21.43024893 -7.85684050
#> 2013 15.28664770 2.85760869 9.66478863 0.41676859 -1.86568045
#> 2014 9.16852243 11.82521119 0.89920960 -14.23925932 1.85840157
#> 2015 18.72999491 -9.15749659 -0.12128002 -11.17237976 2.69965596
#> 2016 -15.34357208 0.26618737 3.62927093 -6.77324332 -3.86793166
#> 2017 -1.52302024 13.18666001 -7.75961869 11.48134828 11.40960766
#> 2018 -11.51931160 -8.74614335 -0.56005464 -6.48120780 2.67518834
#> 2019 1.30699486 8.77061311 5.57893934 11.50015537 -2.82304681
#> 2020 -1.61878192 5.52162660 3.48733451 -0.62679216 -4.82827570
#> Jun Jul Aug Sep Oct
#> 1990 17.00247776 13.44115353 2.47249503 -0.95850995 -1.05894771
#> 1991 14.03825101 8.06123109 -1.25334438 -5.64422544 9.40777992
#> 1992 3.74599658 8.09784422 -10.27311894 2.71204716 3.72163386
#> 1993 -17.65259960 -23.94684943 6.61851420 2.79202139 -19.75798133
#> 1994 11.98583489 5.63019465 3.60364311 8.25363990 -0.40392584
#> 1995 1.49227768 7.56914894 -4.27224530 -13.47831121 0.82595585
#> 1996 -18.30167300 4.04087877 -0.13750674 -1.02241238 2.02454445
#> 1997 -4.95230738 -2.89501667 6.40683953 -1.41462861 -8.79847386
#> 1998 11.52029911 -5.17742857 -6.35012824 -4.00123911 5.93241461
#> 1999 -2.54390092 -3.80451079 7.22051799 13.27842786 -1.25492499
#> 2000 8.02925361 -7.42182079 -10.86486271 15.85888347 -1.40704169
#> 2001 -5.05197318 -4.02419900 22.95251358 -0.58040167 1.22377660
#> 2002 1.21132684 4.35595856 1.38904324 9.82497501 -2.86391397
#> 2003 -6.19216932 -4.28563857 21.43623439 13.81055332 -9.81823126
#> 2004 4.61175487 5.88209678 13.65187644 2.37584966 -13.01932383
#> 2005 0.56429659 8.05545122 -1.92729984 -1.20578134 -2.41185306
#> 2006 18.67312976 7.39326267 9.65687441 4.69334931 7.32928056
#> 2007 0.03403357 -2.87662480 10.04914840 -15.19681487 10.80588866
#> 2008 -9.08038236 2.31002822 10.83031391 -10.23062790 19.75884923
#> 2009 4.95861493 -15.88836847 -3.21264477 -15.52052891 9.61515998
#> 2010 -14.70506429 9.65172228 -7.81441694 12.57319338 -20.46247314
#> 2011 -1.13083340 18.06296611 -9.16313634 3.26036046 17.29406356
#> 2012 8.56316142 -3.54721322 1.86108946 3.85897720 6.05504903
#> 2013 -13.51099737 -9.53225887 -12.82607152 13.48738780 0.87489524
#> 2014 6.47343621 1.23381550 -5.57040623 -4.24403791 14.21456362
#> 2015 15.11653990 -5.93155678 -16.14954366 -13.73896551 11.92737540
#> 2016 -2.10774079 -6.33652476 0.79569318 2.38637053 -5.11546412
#> 2017 -3.34901191 6.29659134 7.34016764 18.02049619 -11.48480057
#> 2018 3.49756194 -12.17302032 0.81927914 -7.95643416 -5.84737942
#> 2019 -17.42631121 4.01343311 6.49059795 10.87865196 11.59117507
#> 2020 19.95979803 -12.51509572 5.28487960 -12.47616265 -0.41651340
#> Nov Dec
#> 1990 -12.61154714 -17.60210399
#> 1991 12.69808946 12.65038490
#> 1992 -14.73803514 -14.22799149
#> 1993 4.96506933 13.53031635
#> 1994 -6.05456736 -4.78648838
#> 1995 11.53728116 25.86841900
#> 1996 8.03320548 -5.87793245
#> 1997 -5.23639611 -6.13436596
#> 1998 -0.01094905 -18.90227763
#> 1999 11.39794704 -7.84406639
#> 2000 -9.75276634 -0.91846724
#> 2001 -2.00777681 4.60803569
#> 2002 16.94152064 5.21310799
#> 2003 13.12917276 3.72374042
#> 2004 17.37977175 14.64151538
#> 2005 -2.55729561 -2.08778684
#> 2006 13.33797734 13.30182641
#> 2007 4.35371426 -13.89147408
#> 2008 5.01748489 9.33783648
#> 2009 -10.86315269 -17.16257245
#> 2010 18.19078188 -13.67382107
#> 2011 6.18631030 -2.43510381
#> 2012 5.22120605 16.07831850
#> 2013 -5.66758222 5.73972934
#> 2014 -8.10897493 -6.78534611
#> 2015 1.16453951 1.97141988
#> 2016 -8.20642372 -14.97546434
#> 2017 12.16381354 -6.73465522
#> 2018 5.34806561 -5.30695812
#> 2019 -15.10504494 1.14206605
#> 2020 -10.54737293 -0.98173680
#>
#> $description
#> type coeff
#> userdef Undefined 2
#>
# Pre-specified ARMA coefficients
myspec1 <- x13_spec(spec = "RSA5c", automdl.enabled = FALSE,
arima.p = 1, arima.q = 1, arima.bp = 0, arima.bq = 1,
arima.coefEnabled = TRUE,
arima.coef = c(-0.8, -0.6, 0),
arima.coefType = c(rep("Fixed", 2), "Undefined"))
s_arimaCoef(myspec1)
#> Type Value
#> Phi(1) Fixed -0.8
#> Theta(1) Fixed -0.6
#> BTheta(1) Undefined 0.0
myreg1 <- x13(myseries, myspec1)
myreg1
#> RegARIMA
#> y = regression model + arima (1, 1, 1, 0, 1, 1)
#> Log-transformation: yes
#> Coefficients:
#> Estimate Std. Error
#> Phi(1) -0.8000 0.00
#> Theta(1) -0.6000 0.00
#> BTheta(1) -0.6977 0.04
#>
#> Estimate Std. Error
#> Monday 0.006317 0.002
#> Tuesday 0.007824 0.002
#> Wednesday 0.010528 0.002
#> Thursday 0.001857 0.002
#> Friday 0.010099 0.002
#> Saturday -0.018439 0.002
#> Easter [1] -0.020593 0.004
#> TC (4-2020) -0.475720 0.031
#> AO (3-2020) -0.213355 0.023
#> AO (5-2011) 0.143705 0.016
#>
#>
#> Residual standard error: 0.0256 on 347 degrees of freedom
#> Log likelihood = 802.3, aic = 1733 aicc = 1734, bic(corrected for length) = -7.15
#>
#>
#>
#> Decomposition
#> Monitoring and Quality Assessment Statistics:
#> M stats
#> M(1) 0.097
#> M(2) 0.052
#> M(3) 0.750
#> M(4) 0.749
#> M(5) 0.731
#> M(6) 0.126
#> M(7) 0.075
#> M(8) 0.220
#> M(9) 0.075
#> M(10) 0.293
#> M(11) 0.281
#> Q 0.300
#> Q-M2 0.331
#>
#> Final filters:
#> Seasonal filter: 3x5
#> Trend filter: 13 terms Henderson moving average
#>
#>
#> Final
#> Last observed values
#> y sa t s i
#> Jan 2020 101.0 103.50059 103.4716 0.9758398 1.0002804
#> Feb 2020 100.1 103.70789 104.1959 0.9652110 0.9953168
#> Mar 2020 91.8 85.02419 105.2353 1.0796927 0.8079439
#> Apr 2020 66.7 66.06576 106.3700 1.0096002 0.6210940
#> May 2020 73.7 77.29646 107.2332 0.9534719 0.7208256
#> Jun 2020 98.2 88.21419 107.6348 1.1131996 0.8195693
#> Jul 2020 97.4 92.04371 107.5406 1.0581929 0.8558971
#> Aug 2020 71.7 95.53300 106.9592 0.7505260 0.8931720
#> Sep 2020 104.7 97.32774 105.9849 1.0757467 0.9183169
#> Oct 2020 106.7 98.74148 104.7928 1.0805996 0.9422542
#> Nov 2020 101.6 100.23569 103.5604 1.0136110 0.9678964
#> Dec 2020 96.6 99.45166 102.3889 0.9713262 0.9713127
#>
#> Forecasts:
#> y_f sa_f t_f s_f i_f
#> Jan 2021 91.86627 99.03608 101.33234 0.9276040 0.9773393
#> Feb 2021 93.73814 98.76312 100.39814 0.9491209 0.9837146
#> Mar 2021 109.97904 99.04192 99.55589 1.1104292 0.9948373
#> Apr 2021 99.51314 98.51411 98.84092 1.0101410 0.9966935
#> May 2021 92.44138 97.26558 98.27297 0.9504018 0.9897491
#> Jun 2021 109.51917 97.80126 97.82297 1.1198135 0.9997780
#> Jul 2021 99.72232 96.85484 97.49522 1.0296059 0.9934317
#> Aug 2021 74.93973 97.28720 97.30419 0.7702938 0.9998254
#> Sep 2021 104.15955 97.30940 97.21500 1.0703955 1.0009711
#> Oct 2021 102.57254 96.84676 97.16553 1.0591221 0.9967193
#> Nov 2021 100.68100 96.97009 97.14932 1.0382686 0.9981552
#> Dec 2021 94.63045 97.42206 97.13060 0.9713452 1.0030007
#>
#>
#> Diagnostics
#> Relative contribution of the components to the stationary
#> portion of the variance in the original series,
#> after the removal of the long term trend
#> Trend computed by Hodrick-Prescott filter (cycle length = 8.0 years)
#> Component
#> Cycle 5.183
#> Seasonal 82.105
#> Irregular 1.148
#> TD & Hol. 3.365
#> Others 10.592
#> Total 102.393
#>
#> Combined test in the entire series
#> Non parametric tests for stable seasonality
#> P.value
#> Kruskall-Wallis test 0.000
#> Test for the presence of seasonality assuming stability 0.000
#> Evolutive seasonality test 0.406
#>
#> Identifiable seasonality present
#>
#> Residual seasonality tests
#> P.value
#> qs test on sa 1.000
#> qs test on i 0.939
#> f-test on sa (seasonal dummies) 0.990
#> f-test on i (seasonal dummies) 0.972
#> Residual seasonality (entire series) 0.989
#> Residual seasonality (last 3 years) 0.996
#> f-test on sa (td) 0.994
#> f-test on i (td) 0.959
#>
#>
#> Additional output variables
# To define a seasonal filter
myspec1 <- x13_spec("RSA5c", x11.seasonalma = rep("S3X1", 12))
mysa1 <- x13(myseries, myspec1)
# }