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

NNETAR(formula, size = NULL, repeats = 20, scale_inputs = TRUE, ...)



Model specification (see "Specials" section).


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


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


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.


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.



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)
The 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).
The order of the seasonal auto-regressive (SAR) terms.
The 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").


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().
Bare expressions for the exogenous regressors (such as