Neural Network Time Series Forecasts
Feed-forward neural networks with a single hidden layer and lagged inputs for forecasting univariate time series.
nnetar(y, p, P=1, size, repeats=20, xreg=NULL, lambda=NULL, model=NULL, subset=NULL, scale.inputs=TRUE, x=y, ...) "forecast"(object, h=ifelse(object$m > 1, 2 * object$m, 10), xreg=NULL, lambda=object$lambda, ...)
- A numeric vector or time series.
- Embedding dimension for non-seasonal time series. Number of non-seasonal lags used as inputs. For non-seasonal time series, the default is the optimal number of lags (according to the AIC) for a linear AR(p) model. For seasonal time series, the same method is used but applied to seasonally adjusted data (from an stl decomposition).
- Number of seasonal lags used as inputs.
- 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.
- Optionally, a vector or matrix of external regressors, which must have the same number of rows as
y. Must be numeric.
- Box-Cox transformation parameter.
- Output from a previous call to
nnetar. If model is passed, this same model is fitted to
ywithout re-estimating any parameters.
- Optional vector specifying a subset of observations to be used in the fit. Can be an integer index vector or a logical vector the same length as
y. All observations are used by default.
- If TRUE, inputs are scaled by subtracting the column means and dividing by their respective standard deviations. If
NULL, scaling is applied after Box-Cox transformation.
- An object of class
- Number of periods for forecasting.
- Deprecated. Included for backwards compatibility.
- Other arguments passed to
nnetarbut ignored for
A feed-forward neural network is fitted with lagged values of
y as inputs and a single hidden layer with
size nodes. The inputs are for lags 1 to
p, and lags
m=frequency(y). If there are missing values in
xreg), the corresponding rows (and any others which depend on them as lags) are omitted from the fit. 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 nonlinear 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 nonlinear functions.
returns an object of class "
forecast.nnetarreturns an object of class "
summaryis used to obtain and print a summary of the results, while the function
plotproduces a plot of the forecasts.The generic accessor functions
residualsextract useful features of the value returned by
nnetar.An object of class
"forecast"is a list containing at least the following elements: is a list containing at least the following elements:
fcast <- forecast(fit) plot(fcast) ## Arguments can be passed to nnet() fit <- nnetar(lynx, decay=0.5, maxit=150) plot(forecast(fit)) lines(lynx) ## Fit model to first 100 years of lynx data fit <- nnetar(window(lynx,end=1920), decay=0.5, maxit=150) plot(forecast(fit,h=14)) lines(lynx) ## Apply fitted model to later data, including all optional arguments fit2 <- nnetar(window(lynx,start=1921), model=fit)