Feed-forward neural networks with a single hidden layer and lagged inputs for forecasting univariate time series.

NNETAR(formula, n_nodes = NULL, n_networks = 20, scale_inputs = TRUE, ...)

Arguments

formula

Model specification (see "Specials" section).

n_nodes

Number of nodes in the hidden layer. Default is half of the number of input nodes (including external regressors, if given) plus 1.

n_networks

Number of networks to fit with different random starting weights. These are then averaged when producing forecasts.

scale_inputs

If TRUE, inputs are scaled by subtracting the column means and dividing by their respective standard deviations. Scaling is applied after transformations.

...

Other arguments passed to nnet::nnet().

Value

A model specification.

Details

A feed-forward neural network is fitted with lagged values of the response as inputs and a single hidden layer with size nodes. The inputs are for lags 1 to p, and lags m to mP where m is the seasonal period specified.

If exogenous regressors are provided, its columns are also used as inputs. Missing values are currently not supported by this model. A total of repeats networks are fitted, each with random starting weights. These are then averaged when computing forecasts. The network is trained for one-step forecasting. Multi-step forecasts are computed recursively.

For non-seasonal data, the fitted model is denoted as an NNAR(p,k) model, where k is the number of hidden nodes. This is analogous to an AR(p) model but with non-linear functions. For seasonal data, the fitted model is called an NNAR(p,P,k)[m] model, which is analogous to an ARIMA(p,0,0)(P,0,0)[m] model but with non-linear functions.

Specials

AR

The AR special is used to specify auto-regressive components in each of the nodes of the neural network.


AR(p = NULL, P = 1, period = NULL)
pThe order of the non-seasonal auto-regressive (AR) terms. If p = NULL, an optimal number of lags will be selected for a linear AR(p) model via AIC. For seasonal time series, this will be computed on the seasonally adjusted data (via STL decomposition).
PThe order of the seasonal auto-regressive (SAR) terms.
periodThe periodic nature of the seasonality. This can be either a number indicating the number of observations in each seasonal period, or text to indicate the duration of the seasonal window (for example, annual seasonality would be "1 year").

xreg

Exogenous regressors can be included in an NNETAR model without explicitly using the xreg() special. Common exogenous regressor specials as specified in common_xregs can also be used. These regressors are handled using stats::model.frame(), and so interactions and other functionality behaves similarly to stats::lm().


xreg(...)
...Bare expressions for the exogenous regressors (such as log(x))

Examples

as_tsibble(airmiles) %>%
  model(nn = NNETAR(box_cox(value, 0.15)))
#> # A mable: 1 x 1
#>            nn
#>       <model>
#> 1 <NNAR(1,1)>