Fitting a SARIMA model in Stan.
stan_sarima(
ts,
order = c(1, 0, 0),
seasonal = c(0, 0, 0),
xreg = NULL,
period = 0,
chains = 4,
iter = 2000,
warmup = floor(iter/2),
adapt.delta = 0.9,
tree.depth = 10,
stepwise = TRUE,
prior_mu0 = NULL,
prior_sigma0 = NULL,
prior_ar = NULL,
prior_ma = NULL,
prior_sar = NULL,
prior_sma = NULL,
prior_breg = NULL,
series.name = NULL,
...
)
a numeric or ts object with the univariate time series.
A specification of the non-seasonal part of the ARIMA model: the three components (p, d, q) are the AR order, the number of differences, and the MA order.
A specification of the seasonal part of the ARIMA model,same as order parameter: the three components (p, d, q) are the seasonal AR order, the degree of seasonal differences, and the seasonal MA order.
Optionally, a numerical matrix of external regressors, which must have the same number of rows as ts. It should not be a data frame.
an integer specifying the periodicity of the time series by default the value frequency(ts) is used.
An integer of the number of Markov Chains chains to be run, by default 4 chains are run.
An integer of total iterations per chain including the warm-up, by default the number of iterations are 2000.
A positive integer specifying number of warm-up (aka burn-in)
iterations. This also specifies the number of iterations used for step-size
adaptation, so warm-up samples should not be used for inference. The number
of warmup should not be larger than iter
and the default is
iter/2
.
An optional real value between 0 and 1, the thin of the jumps in a HMC method. By default is 0.9.
An integer of the maximum depth of the trees evaluated during each iteration. By default is 10.
If TRUE, will do stepwise selection (faster). Otherwise, it searches over all models. Non-stepwise selection can be very slow, especially for seasonal models.
The prior distribution for the location parameter in an ARIMA model. By default
the value is set NULL
, then the default student(7,0,1) prior is used.
The prior distribution for the scale parameter in an ARIMA model. By default
the value is set NULL
, then the default student(7,0,1) prior is used.
The prior distribution for the auto-regressive parameters in an ARIMA model.
By default the value is set NULL
, then the default normal(0,0.5) priors are used.
The prior distribution for the moving average parameters in an ARIMA model.
By default the value is set NULL
, then the default normal(0,0.5) priors are used.
The prior distribution for the seasonal auto-regressive parameters in a
SARIMA model. By default the value is set NULL
, then the default normal(0,0.5) priors
are used.
The prior distribution for the seasonal moving average parameters in a
SARIMA model. By default the value is set NULL
, then the default normal(0,0.5) priors
are used.
The prior distribution for the regression coefficient parameters in a
ARIMAX model. By default the value is set NULL
, then the default student(7,0,1) priors
are used.
an optional string vector with the series names.
Further arguments passed to varstan
function.
A varstan
object with the fitted SARIMA model.
The function returns a varstan
object with the fitted model.
If xreg
option is used, the model by default will cancel the
seasonal differences adjusted (D = 0). If a value d
> 0 is used, all
the regressor variables in xreg
will be difference as well.
The default priors used in Sarima are:
ar ~ normal(0,0.5)
ma ~ normal(0,0.5)
mu0 ~ t-student(0,2.5,6)
sigma0 ~ t-student(0,1,7)
sar ~ normal(0,0.5)
sma ~ normal(0,0.5)
breg ~ t-student(0,2.5,6)
Box, G. E. P. and Jenkins, G.M. (1978). Time series analysis: Forecasting and
control. San Francisco: Holden-Day. Biometrika, 60(2), 297-303.
doi:10.1093/biomet/65.2.297
.
Kennedy, P. (1992). Forecasting with dynamic regression models: Alan Pankratz, 1991.
International Journal of Forecasting. 8(4), 647-648.
url: https://EconPapers.repec.org/RePEc:eee:intfor:v:8:y:1992:i:4:p:647-648
.
Hyndman, R. & Khandakar, Y. (2008). Automatic time series forecasting: the
forecast package for R
. Journal of Statistical Software. 26(3),
1-22.doi: 10.18637/jss.v027.i03
# NOT RUN {
library(astsa)
# Declare a multiplicative seasonal ARIMA model for the birth data.
sf1 = stan_sarima(birth,order = c(0,1,2),
seasonal = c(1,1,1),iter = 500,chains = 1)
#Declare an Dynamic Harmonic Regression model for the birth data.
sf2 = stan_sarima(birth,order = c(1,0,1),
xreg = fourier(birth,K = 2),iter = 500,chains = 1)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab