X-13ARIMA-SEATS model specification, SA/X13
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).
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 )
spec |
model specification X13. It can be a |
preliminary.check |
boolean to check the quality of the input series and exclude highly problematic ones: e.g. these with a number of identical observations and/or missing values above pre-specified threshold values. The time span of the series to be used for the estimation of the RegARIMA model coefficients (default from 1900-01-01 to 2020-12-31) is controlled by the following six variables: |
estimate.from |
character in format "YYYY-MM-DD" indicating the start of the time span (e.g. "1900-01-01"). Can be combined with |
estimate.to |
character in format "YYYY-MM-DD" indicating the end of the time span (e.g. "2020-12-31"). Can be combined with |
estimate.first |
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 |
numeric specifying the number of periods excluded at the beginning of the series. Can be combined with |
estimate.exclLast |
numeric specifying the number of periods excluded at the end of the series. Can be combined with |
estimate.tol |
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 |
transformation of the input series: |
transform.adjust |
pre-adjustment of the input series for length of period or leap year effects: |
transform.aicdiff |
numeric defining the difference in AICC needed to accept no transformation when the automatic transformation selection is chosen (considered only when Control variables for the pre-specified outliers. The pre-specified outliers are used in the model only if they are enabled ( |
usrdef.outliersEnabled |
logicals. If |
usrdef.outliersType |
vector defining the outliers' type. Possible types are: |
usrdef.outliersDate |
vector defining the outliers' date. The dates should be characters in format "YYYY-MM-DD". E.g.: |
usrdef.outliersCoef |
vector providing fixed coefficients for the outliers. The coefficients can't be fixed if Control variables for the user-defined variables: |
usrdef.varEnabled |
logicals. If |
usrdef.var |
time series ( |
usrdef.varType |
vector of character(s) defining the user-defined variables component type. Possible types are: |
usrdef.varCoef |
vector providing fixed coefficients for the user-defined variables. The coefficients can't be fixed if |
tradingdays.option |
defines the type of the trading days regression variables: |
tradingdays.autoadjust |
logicals. If |
tradingdays.leapyear |
option for including the leap-year effect in the model: |
tradingdays.stocktd |
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.test |
defines the pre-tests for the significance of the trading day regression variables based on the AICC statistics: |
easter.enabled |
logicals. If |
easter.julian |
logicals. If |
easter.duration |
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 (Easter effect is considered as significant if the t-statistic is greater than 1.96): |
outlier.enabled |
logicals. If The time span of the series to be searched for outliers (default from 1900-01-01 to 2020-12-31) is controlled by the following six variables: |
outlier.from |
character in format "YYYY-MM-DD" indicating the start of the time span (e.g. "1900-01-01"). Can be combined with |
outlier.to |
character in format "YYYY-MM-DD" indicating the end of the time span (e.g. "2020-12-31"). Can be combined with |
outlier.first |
numeric specifying the number of periods considered at the beginning of the series. |
outlier.last |
numeric specifying the number of periods considered at the end of the series. |
outlier.exclFirst |
numeric specifying the number of periods excluded at the beginning of the series. Can be combined with |
outlier.exclLast |
numeric specifying the number of periods excluded at the end of the series. Can be combined with |
outlier.ao |
logicals. If |
outlier.tc |
logicals. If |
outlier.ls |
logicals. If |
outlier.so |
logicals. If |
outlier.usedefcv |
logicals. If |
outlier.cv |
numeric. Inputted critical value for the outliers' detection procedure. The modification of this variable is taken into account only when |
outlier.method |
determines how the program successively adds detected outliers to the model. At present only the |
outlier.tcrate |
numeric. The rate of decay for the transitory change outlier. |
automdl.enabled |
logicals. If Control variables for the automatic modelling of the ARIMA model ( |
automdl.acceptdefault |
logicals. If |
automdl.cancel |
numeric, cancelation limit. 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 cancelation limit, the two roots are assumed equal and cancel out. |
automdl.ub1 |
numeric, first unit root limit. 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 first unit root limit in modulus, it is set equal to unity. |
automdl.ub2 |
numeric, second unit root limit. 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 cancelled (see |
automdl.mixed |
logicals. The 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 |
automdl.balanced |
logicals. If |
automdl.armalimit |
numeric, arma limit. 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 less than this value in magnitude, the order of the model is reduced. Also if the constant term has a t-value less than 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)xCV, where CV is the original critical value. |
automdl.ljungboxlimit |
numeric, Ljung Box limit. 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 Ljung Box limit, 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 less than the final unit root limit, 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 ( |
arima.mu |
logicals. If |
arima.p |
numeric. The order of the non-seasonal autoregressive (AR) polynomial. |
arima.d |
numeric. 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. 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.coefEnabled |
logicals. If |
arima.coef |
vector providing the coefficients for the regular and seasonal AR and MA polynominals. The length of the vector must equal the sum of the regular and seasonal AR and MA orders. The coefficients shall be provided in the order: regular AR (Phi - |
arima.coefType |
vector defining ARMA coefficients estimation procedure. Possible procedures are: |
fcst.horizon |
numeric, forecasts horizon. Length of the forecasts generated by the RegARIMA model in periods (positive values) or years (negative values). By default the program generates two years forecasts ( |
x11.mode |
character, decomposition mode. Determines the mode of the seasonal adjustment decomposition to be performed: |
x11.seasonalComp |
logicals. If |
x11.lsigma |
numeric, lower sigma boundary for the detection of extreme values. |
x11.usigma |
numeric, upper sigma boundary for the detection of extreme values. |
x11.trendAuto |
logicals, automatic Henderson filter. If |
x11.trendma |
numeric, 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.seasonalma |
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 - same seasonal filters for all periods (e.g.: |
x11.fcasts |
numeric, RegARIMA forecast. Length of the forecasts generated by the RegARIMA model in periods (positive values) or years (negative values). |
x11.bcasts |
numeric, backcast. Length of the backcasts used in X11. Negative figures are translated in years of backcasts. |
x11.calendarSigma |
character to specify if the standard errors used for extreme values detection and adjustment are computed from 5 year spans of irregulars ( |
x11.sigmaVector |
vector to specifies 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.excludeFcasts |
logicals, exclude forecats and backcasts. If |
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 |
X11 | | NA | | NA | | NA | | NA |
A two-elements list of class c("SA_spec", "X13")
: (1) object of class c("regarima_spec", "X13")
with the RegARIMA model specification, (2) object of class c("X11_spec", "data.frame")
with the X11 algorithm specification.
Each component refers to different part of the SA model specification, mirroring the arguments of the function (for details see arguments description).
Each of the lowest-level component (except span, pre-specified outliers, user-defined variables and pre-specified ARMA coefficients) is structured within a data frame with columns denoting different variables of the model specification and rows referring to: first row - 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 - 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 with the Predefined
(base model specification) and Final
values.
regarima |
object of class |
x11 |
data.frame of class |
Info on 'JDemetra+', usage and functions: https://ec.europa.eu/eurostat/cros/content/documentation_en 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.
myseries <- ipi_c_eu[, "FR"] myspec1 <- x13_spec(spec = "RSA5c") myreg1 <- x13(myseries, spec = myspec1) # Modify a pre-specified model specification myspec2 <- x13_spec(spec = "RSA5c", tradingdays.option = "WorkingDays") myreg2 <- x13(myseries, spec = myspec2) # Modify the model specification from a "X13" object myspec3 <- x13_spec(myreg1, tradingdays.option = "WorkingDays") myreg3 <- x13(myseries, myspec3) # Modify the model specification from 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 s_preOut(myreg1) # 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")) myreg1 <- x13(myseries, myspec1) myreg1 myspec2 <- x13_spec(spec = "RSA5c", usrdef.varEnabled = TRUE, usrdef.var = var1, usrdef.varCoef = 2, transform.function = "None") myreg2 <- x13(myseries, myspec2) s_preVar(myreg2) # 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) myreg1 <- x13(myseries, myspec1) myreg1 # Defined seasonal filters myspec1 <- x13_spec("RSA5c", x11.seasonalma = rep("S3X1", 12)) mysa1 <- x13(myseries, myspec1)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.