Forecasting using R
Rob J Hyndman
3.4 Advanced methods
Forecasting using R 1
Outline
1 Vector autoregressions
2 Time series with complex seasonality
3 Lab session 17
4 Neural network models
5 Lab session 18
6 Lab session 19
Forecasting using R Vector autoregressions 2
Vector autoregressions
Dynamic regression assumes a unidirectional
relationship: forecast variable influenced by predictor
variables, but not vice versa.
Vector AR allow for feedback relationships. All variables
treated symmetrically.
i.e., all variables are now treated as “endogenous”.
Personal consumption may be affected by disposable
income, and vice-versa.
e.g., Govt stimulus package in Dec 2008 increased
Christmas spending which increased incomes.
Forecasting using R Vector autoregressions 3
Vector autoregressions
Dynamic regression assumes a unidirectional
relationship: forecast variable influenced by predictor
variables, but not vice versa.
Vector AR allow for feedback relationships. All variables
treated symmetrically.
i.e., all variables are now treated as “endogenous”.
Personal consumption may be affected by disposable
income, and vice-versa.
e.g., Govt stimulus package in Dec 2008 increased
Christmas spending which increased incomes.
Forecasting using R Vector autoregressions 3
Vector autoregressions
VAR(1)
y1,t = c1 + φ11,1 y1,t−1 + φ12,1 y2,t−1 + e1,t
y2,t = c2 + φ21,1 y1,t−1 + φ22,1 y2,t−1 + e2,t
Forecasts:
ŷ1,T+1|T = ĉ1 + φ̂11,1 y1,T + φ̂12,1 y2,T
ŷ2,T+1|T = ĉ2 + φ̂21,1 y1,T + φ̂22,1 y2,T .
ŷ1,T+2|T = ĉ1 + φ̂11,1 ŷ1,T+1 + φ̂12,1 ŷ2,T+1
ŷ2,T+2|T = ĉ2 + φ̂21,1 ŷ1,T+1 + φ̂22,1 ŷ2,T+1 .
Forecasting using R Vector autoregressions 4
Vector autoregressions
VAR(1)
y1,t = c1 + φ11,1 y1,t−1 + φ12,1 y2,t−1 + e1,t
y2,t = c2 + φ21,1 y1,t−1 + φ22,1 y2,t−1 + e2,t
Forecasts:
ŷ1,T+1|T = ĉ1 + φ̂11,1 y1,T + φ̂12,1 y2,T
ŷ2,T+1|T = ĉ2 + φ̂21,1 y1,T + φ̂22,1 y2,T .
ŷ1,T+2|T = ĉ1 + φ̂11,1 ŷ1,T+1 + φ̂12,1 ŷ2,T+1
ŷ2,T+2|T = ĉ2 + φ̂21,1 ŷ1,T+1 + φ̂22,1 ŷ2,T+1 .
Forecasting using R Vector autoregressions 4
VARs are useful when
forecasting a collection of related variables where no
explicit interpretation is required;
testing whether one variable is useful in forecasting
another (the basis of Granger causality tests);
impulse response analysis, where the response of
one variable to a sudden but temporary change in
another variable is analysed;
forecast error variance decomposition, where the
proportion of the forecast variance of one variable is
attributed to the effect of other variables.
Forecasting using R Vector autoregressions 5
VARs are useful when
forecasting a collection of related variables where no
explicit interpretation is required;
testing whether one variable is useful in forecasting
another (the basis of Granger causality tests);
impulse response analysis, where the response of
one variable to a sudden but temporary change in
another variable is analysed;
forecast error variance decomposition, where the
proportion of the forecast variance of one variable is
attributed to the effect of other variables.
Forecasting using R Vector autoregressions 5
VARs are useful when
forecasting a collection of related variables where no
explicit interpretation is required;
testing whether one variable is useful in forecasting
another (the basis of Granger causality tests);
impulse response analysis, where the response of
one variable to a sudden but temporary change in
another variable is analysed;
forecast error variance decomposition, where the
proportion of the forecast variance of one variable is
attributed to the effect of other variables.
Forecasting using R Vector autoregressions 5
VARs are useful when
forecasting a collection of related variables where no
explicit interpretation is required;
testing whether one variable is useful in forecasting
another (the basis of Granger causality tests);
impulse response analysis, where the response of
one variable to a sudden but temporary change in
another variable is analysed;
forecast error variance decomposition, where the
proportion of the forecast variance of one variable is
attributed to the effect of other variables.
Forecasting using R Vector autoregressions 5
VAR example
> ar(usconsumption,order=3)
$ar
, , 1 consumption income
consumption 0.222 0.0424
income 0.475 -0.2390
, , 2 consumption income
consumption 0.2001 -0.0977
income 0.0288 -0.1097
, , 3 consumption income
consumption 0.235 -0.0238
income 0.406 -0.0923
$[Link]
consumption income
consumption 0.393 0.193
income 0.193 0.735
Forecasting using R Vector autoregressions 6
VAR example
> library(vars)
> VARselect(usconsumption, [Link]=8, type="const")$selection
AIC(n) HQ(n) SC(n) FPE(n)
5 1 1 5
> var <- VAR(usconsumption, p=3, type="const")
> [Link](var, [Link]=10, type="[Link]")
Portmanteau Test (asymptotic)
data: Residuals of VAR object var
Chi-squared = 33.3837, df = 28, p-value = 0.2219
Forecasting using R Vector autoregressions 7
VAR example
> summary(var)
VAR Estimation Results:
=========================
Endogenous variables: consumption, income
Deterministic variables: const
Sample size: 161
Estimation results for equation consumption:
============================================
Estimate Std. Error t value Pr(>|t|)
consumption.l1 0.22280 0.08580 2.597 0.010326 *
income.l1 0.04037 0.06230 0.648 0.518003
consumption.l2 0.20142 0.09000 2.238 0.026650 *
income.l2 -0.09830 0.06411 -1.533 0.127267
consumption.l3 0.23512 0.08824 2.665 0.008530 **
income.l3 -0.02416 0.06139 -0.394 0.694427
const 0.31972 0.09119 3.506 0.000596 ***
Forecasting using R Vector autoregressions 8
VAR example
Estimation results for equation income:
=======================================
Estimate Std. Error t value Pr(>|t|)
consumption.l1 0.48705 0.11637 4.186 4.77e-05 ***
income.l1 -0.24881 0.08450 -2.945 0.003736 **
consumption.l2 0.03222 0.12206 0.264 0.792135
income.l2 -0.11112 0.08695 -1.278 0.203170
consumption.l3 0.40297 0.11967 3.367 0.000959 ***
income.l3 -0.09150 0.08326 -1.099 0.273484
const 0.36280 0.12368 2.933 0.003865 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Correlation matrix of residuals:
consumption income
consumption 1.0000 0.3639
income 0.3639 1.0000
Forecasting using R Vector autoregressions 9
VAR example
fcst <- forecast(var)
plot(fcst, xlab="Year")
Forecasting using R Vector autoregressions 10
VAR example
Forecasts from VAR(3)
2
consumption
1
0
−2 −1
0 1 2 3 4
income
−2
1970 1980 1990 2000 2010
Year
Forecasting using R Vector autoregressions 11
Outline
1 Vector autoregressions
2 Time series with complex seasonality
3 Lab session 17
4 Neural network models
5 Lab session 18
6 Lab session 19
Forecasting using R Time series with complex seasonality 12
Examples
US finished motor gasoline products
10
Thousands of barrels per day
1995 2000 2005
Year
Forecasting using R Time series with complex seasonality 13
Examples
Number of calls to large American bank (7am...9pm)
500
Number of calls in 5 minute interval
400
300
200
100
0
1 2 3 4 5 6 7 8 9 10 11 12 13
Week
Forecasting using R Time series with complex seasonality 13
Examples
Turkish daily electricity demand
25000
Electricity demand (MW)
20000
15000
10000
2000 2002 2004 2006 2008 2010
Year
Forecasting using R Time series with complex seasonality 13
TBATS model
TBATS
Trigonometric terms for seasonality
Box-Cox transformations for heterogeneity
ARMA errors for short-term dynamics
Trend (possibly damped)
Seasonal (including multiple and
non-integer periods)
Forecasting using R Time series with complex seasonality 14
TBATS model
yt = observation at time t
(
(ω) (ytω − 1)/ω if ω 6= 0;
yt =
log yt if ω = 0.
M
X
(ω) (i)
yt = `t−1 + φbt−1 + st−mi + dt
i=1
`t = `t−1 + φbt−1 + αdt
bt = (1 − φ)b + φbt−1 + βdt
X p q
X
dt = φi dt−i + θj εt−j + εt
i=1 j=1
(i) (i) (i) ∗(i) (i) (i)
ki sj,t = sj,t−1 cos λj + sj,t−1 sin λj + γ1 dt
(i)
X (i)
st = sj,t (i) (i) (i) ∗(i) (i) (i)
sj,t = −sj,t−1 sin λj + sj,t−1 cos λj + γ2 dt
j=1
Forecasting using R Time series with complex seasonality 15
TBATS model
yt = observation at time t
Box-Cox transformation
(
(ω) (ytω − 1)/ω if ω 6= 0;
yt =
log yt if ω = 0.
M
X
(ω) (i)
yt = `t−1 + φbt−1 + st−mi + dt
i=1
`t = `t−1 + φbt−1 + αdt
bt = (1 − φ)b + φbt−1 + βdt
X p q
X
dt = φi dt−i + θj εt−j + εt
i=1 j=1
(i) (i) (i) ∗(i) (i) (i)
ki sj,t = sj,t−1 cos λj + sj,t−1 sin λj + γ1 dt
(i)
X (i)
st = sj,t (i) (i) (i) ∗(i) (i) (i)
sj,t = −sj,t−1 sin λj + sj,t−1 cos λj + γ2 dt
j=1
Forecasting using R Time series with complex seasonality 15
TBATS model
yt = observation at time t
Box-Cox transformation
(
(ω) (ytω − 1)/ω if ω 6= 0;
yt =
log yt if ω = 0.
M
(ω)
X (i) M seasonal periods
yt = `t−1 + φbt−1 + st−mi + dt
i=1
`t = `t−1 + φbt−1 + αdt
bt = (1 − φ)b + φbt−1 + βdt
X p q
X
dt = φi dt−i + θj εt−j + εt
i=1 j=1
(i) (i) (i) ∗(i) (i) (i)
ki sj,t = sj,t−1 cos λj + sj,t−1 sin λj + γ1 dt
(i)
X (i)
st = sj,t (i) (i) (i) ∗(i) (i) (i)
sj,t = −sj,t−1 sin λj + sj,t−1 cos λj + γ2 dt
j=1
Forecasting using R Time series with complex seasonality 15
TBATS model
yt = observation at time t
Box-Cox transformation
(
(ω) (ytω − 1)/ω if ω 6= 0;
yt =
log yt if ω = 0.
M
(ω)
X (i) M seasonal periods
yt = `t−1 + φbt−1 + st−mi + dt
i=1
`t = `t−1 + φbt−1 + αdt global and local trend
bt = (1 − φ)b + φbt−1 + βdt
X p q
X
dt = φi dt−i + θj εt−j + εt
i=1 j=1
(i) (i) (i) ∗(i) (i) (i)
ki sj,t = sj,t−1 cos λj + sj,t−1 sin λj + γ1 dt
(i)
X (i)
st = sj,t (i) (i) (i) ∗(i) (i) (i)
sj,t = −sj,t−1 sin λj + sj,t−1 cos λj + γ2 dt
j=1
Forecasting using R Time series with complex seasonality 15
TBATS model
yt = observation at time t
Box-Cox transformation
(
(ω) (ytω − 1)/ω if ω 6= 0;
yt =
log yt if ω = 0.
M
(ω)
X (i) M seasonal periods
yt = `t−1 + φbt−1 + st−mi + dt
i=1
`t = `t−1 + φbt−1 + αdt global and local trend
bt = (1 − φ)b + φbt−1 + βdt
p q
X X ARMA error
dt = φi dt−i + θj εt−j + εt
i=1 j=1
(i) (i) (i) ∗(i) (i) (i)
ki sj,t = sj,t−1 cos λj + sj,t−1 sin λj + γ1 dt
(i)
X (i)
st = sj,t (i) (i) (i) ∗(i) (i) (i)
sj,t = −sj,t−1 sin λj + sj,t−1 cos λj + γ2 dt
j=1
Forecasting using R Time series with complex seasonality 15
TBATS model
yt = observation at time t
Box-Cox transformation
(
(ω) (ytω − 1)/ω if ω 6= 0;
yt =
log yt if ω = 0.
M
(ω)
X (i) M seasonal periods
yt = `t−1 + φbt−1 + st−mi + dt
i=1
`t = `t−1 + φbt−1 + αdt global and local trend
bt = (1 − φ)b + φbt−1 + βdt
p q
X X ARMA error
dt = φi dt−i + θj εt−j + εt
i=1 j=1
(i) (i)
Fourier-like
(i)
seasonal
∗(i) (i)
terms
(i)
ki sj,t = sj,t−1 cos λj + sj,t−1 sin λj + γ1 dt
(i)
X (i)
st = sj,t (i) (i) (i) ∗(i) (i) (i)
sj,t = −sj,t−1 sin λj + sj,t−1 cos λj + γ2 dt
j=1
Forecasting using R Time series with complex seasonality 15
TBATS model
yt = observation at time t
Box-Cox transformation
(
(ω) (ytω − 1)/ω if ω 6= 0;
yt =
logTBATS
yt if ω = 0.
(ω)
TrigonometricM
X (i) M seasonal periods
yt = `t−1 + φbt−1 + st−m + dt
Box-Coxi=1 i
`t = `t−1 +
ARMAφbt−1 + αdt global and local trend
bt = (1 − φ)b + φbt−1 + βdt
p
TrendX q
X ARMA error
dt = i dt−i +
φSeasonal θj εt−j + εt
i=1 j=1
(i) (i)
Fourier-like
(i)
seasonal
∗(i) (i)
terms
(i)
ki sj,t = sj,t−1 cos λj + sj,t−1 sin λj + γ1 dt
(i)
X (i)
st = sj,t (i) (i) (i) ∗(i) (i) (i)
sj,t = −sj,t−1 sin λj + sj,t−1 cos λj + γ2 dt
j=1
Forecasting using R Time series with complex seasonality 15
Complex seasonality
US finished motor gasoline products
10
Thousands of barrels per day
1995 2000 2005
Year
Forecasting using R Time series with complex seasonality 16
Complex seasonality
Forecasts from TBATS(1, {0,0}, 1, {<52.1785714285714,9>})
10
Thousands of barrels per day
1995 2000 2005
Year
Forecasting using R Time series with complex seasonality 16
Complex seasonality
Forecasts from TBATS(1, {0,0}, 1, {<52.1785714285714,9>})
fit <- tbats(gasoline)
10 fcast <- forecast(fit)
Thousands of barrels per day
plot(fcast)
1995 2000 2005
Year
Forecasting using R Time series with complex seasonality 17
Complex seasonality
Number of calls to large American bank (7am...9pm)
500
Number of calls in 5 minute interval
400
300
200
100
0
1 2 3 4 5 6 7 8 9 10 11 12 13
Week
Forecasting using R Time series with complex seasonality 18
Complex seasonality
Forecasts from TBATS(1, {0,0}, −, {<169,15>, <845,3>})
500
Number of calls in 5 minute interval
400
300
200
100
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Week
Forecasting using R Time series with complex seasonality 18
Complex seasonality
Forecasts from TBATS(1, {0,0}, −, {<169,15>, <845,3>})
500
fit <- tbats(calls)
Number of calls in 5 minute interval
400
fcast <- forecast(fit)
plot(fcast)
300
200
100
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Week
Forecasting using R Time series with complex seasonality 19
Complex seasonality
Turkish daily electricity demand
25000
Electricity demand (MW)
20000
15000
10000
2000 2002 2004 2006 2008 2010
Year
Forecasting using R Time series with complex seasonality 20
Complex seasonality
Forecasts from TBATS(0, {4,2}, 0.913, {<7,3>, <354.37,6>, <365.25,6>})
25000
Electricity demand (MW)
20000
15000
10000
2000 2002 2004 2006 2008 2010
Year
Forecasting using R Time series with complex seasonality 20
Complex seasonality
Forecasts from TBATS(0, {4,2}, 0.913, {<7,3>, <354.37,6>, <365.25,6>})
fit <- tbats(telec)
25000
fcast <- forecast(fit)
plot(fcast)
Electricity demand (MW)
20000
15000
10000
2000 2002 2004 2006 2008 2010
Year
Forecasting using R Time series with complex seasonality 21
TBATS model
TBATS
Trigonometric terms for seasonality
Box-Cox transformations for heterogeneity
ARMA errors for short-term dynamics
Trend (possibly damped)
Seasonal (including multiple and non-integer periods)
Handles non-integer seasonality, multiple seasonal
periods.
Entirely automated
Prediction intervals often too wide
Very slow on long series
Forecasting using R Time series with complex seasonality 22
TBATS model
TBATS
Trigonometric terms for seasonality
Box-Cox transformations for heterogeneity
ARMA errors for short-term dynamics
Trend (possibly damped)
Seasonal (including multiple and non-integer periods)
Handles non-integer seasonality, multiple seasonal
periods.
Entirely automated
Prediction intervals often too wide
Very slow on long series
Forecasting using R Time series with complex seasonality 22
TBATS model
TBATS
Trigonometric terms for seasonality
Box-Cox transformations for heterogeneity
ARMA errors for short-term dynamics
Trend (possibly damped)
Seasonal (including multiple and non-integer periods)
Handles non-integer seasonality, multiple seasonal
periods.
Entirely automated
Prediction intervals often too wide
Very slow on long series
Forecasting using R Time series with complex seasonality 22
TBATS model
TBATS
Trigonometric terms for seasonality
Box-Cox transformations for heterogeneity
ARMA errors for short-term dynamics
Trend (possibly damped)
Seasonal (including multiple and non-integer periods)
Handles non-integer seasonality, multiple seasonal
periods.
Entirely automated
Prediction intervals often too wide
Very slow on long series
Forecasting using R Time series with complex seasonality 22
Outline
1 Vector autoregressions
2 Time series with complex seasonality
3 Lab session 17
4 Neural network models
5 Lab session 18
6 Lab session 19
Forecasting using R Lab session 17 23
Lab Session 17
Forecasting using R Lab session 17 24
Outline
1 Vector autoregressions
2 Time series with complex seasonality
3 Lab session 17
4 Neural network models
5 Lab session 18
6 Lab session 19
Forecasting using R Neural network models 25
Neural network models
Simplest version: linear regression
Input Output
layer layer
Input #1
Input #2
Output
Input #3
Input #4
Coefficients attached to predictors are called “weights”.
Forecasts are obtained by a linear combination of inputs.
Weights selected using a “learning algorithm” that minimises a
“cost function”.
Forecasting using R Neural network models 26
Neural network models
Simplest version: linear regression
Input Output
layer layer
Input #1
Input #2
Output
Input #3
Input #4
Coefficients attached to predictors are called “weights”.
Forecasts are obtained by a linear combination of inputs.
Weights selected using a “learning algorithm” that minimises a
“cost function”.
Forecasting using R Neural network models 26
Neural network models
Simplest version: linear regression
Input Output
layer layer
Input #1
Input #2
Output
Input #3
Input #4
Coefficients attached to predictors are called “weights”.
Forecasts are obtained by a linear combination of inputs.
Weights selected using a “learning algorithm” that minimises a
“cost function”.
Forecasting using R Neural network models 26
Neural network models
Simplest version: linear regression
Input Output
layer layer
Input #1
Input #2
Output
Input #3
Input #4
Coefficients attached to predictors are called “weights”.
Forecasts are obtained by a linear combination of inputs.
Weights selected using a “learning algorithm” that minimises a
“cost function”.
Forecasting using R Neural network models 26
Neural network models
Nonlinear model with one hidden layer
Input Hidden Output
layer layer layer
Input #1
Input #2
Output
Input #3
Input #4
A multilayer feed-forward network where each layer of nodes
receives inputs from the previous layers.
Inputs to each node combined using linear combination.
Result modified by nonlinear function before being output.
Forecasting using R Neural network models 27
Neural network models
Nonlinear model with one hidden layer
Input Hidden Output
layer layer layer
Input #1
Input #2
Output
Input #3
Input #4
A multilayer feed-forward network where each layer of nodes
receives inputs from the previous layers.
Inputs to each node combined using linear combination.
Result modified by nonlinear function before being output.
Forecasting using R Neural network models 27
Neural network models
Nonlinear model with one hidden layer
Input Hidden Output
layer layer layer
Input #1
Input #2
Output
Input #3
Input #4
A multilayer feed-forward network where each layer of nodes
receives inputs from the previous layers.
Inputs to each node combined using linear combination.
Result modified by nonlinear function before being output.
Forecasting using R Neural network models 27
Neural network models
Nonlinear model with one hidden layer
Input Hidden Output
layer layer layer
Input #1
Input #2
Output
Input #3
Input #4
A multilayer feed-forward network where each layer of nodes
receives inputs from the previous layers.
Inputs to each node combined using linear combination.
Result modified by nonlinear function before being output.
Forecasting using R Neural network models 27
Neural network models
Inputs to hidden neuron j linearly combined:
4
X
z j = bj + wi,j xi .
i=1
Modified using nonlinear function such as a sigmoid:
1
s(z) = ,
1 + e−z
This tends to reduce the effect of extreme input values,
thus making the network somewhat robust to outliers.
Forecasting using R Neural network models 28
Neural network models
Weights take random values to begin with, which are
then updated using the observed data.
There is an element of randomness in the
predictions. So the network is usually trained several
times using different random starting points, and the
results are averaged.
Number of hidden layers, and the number of nodes
in each hidden layer, must be specified in advance.
Forecasting using R Neural network models 29
Neural network models
Weights take random values to begin with, which are
then updated using the observed data.
There is an element of randomness in the
predictions. So the network is usually trained several
times using different random starting points, and the
results are averaged.
Number of hidden layers, and the number of nodes
in each hidden layer, must be specified in advance.
Forecasting using R Neural network models 29
Neural network models
Weights take random values to begin with, which are
then updated using the observed data.
There is an element of randomness in the
predictions. So the network is usually trained several
times using different random starting points, and the
results are averaged.
Number of hidden layers, and the number of nodes
in each hidden layer, must be specified in advance.
Forecasting using R Neural network models 29
NNAR models
Lagged values of the time series can be used as
inputs to a neural network.
NNAR(p, k): p lagged inputs and k nodes in the single
hidden layer.
NNAR(p, 0) model is equivalent to an ARIMA(p, 0, 0)
model but without stationarity restrictions.
Seasonal NNAR(p, P, k): inputs
(yt−1 , yt−2 , . . . , yt−p , yt−m , yt−2m , yt−Pm ) and k
neurons in the hidden layer.
NNAR(p, P, 0)m model is equivalent to an
ARIMA(p, 0, 0)(P,0,0)m model but without
stationarity restrictions.
Forecasting using R Neural network models 30
NNAR models
Lagged values of the time series can be used as
inputs to a neural network.
NNAR(p, k): p lagged inputs and k nodes in the single
hidden layer.
NNAR(p, 0) model is equivalent to an ARIMA(p, 0, 0)
model but without stationarity restrictions.
Seasonal NNAR(p, P, k): inputs
(yt−1 , yt−2 , . . . , yt−p , yt−m , yt−2m , yt−Pm ) and k
neurons in the hidden layer.
NNAR(p, P, 0)m model is equivalent to an
ARIMA(p, 0, 0)(P,0,0)m model but without
stationarity restrictions.
Forecasting using R Neural network models 30
NNAR models
Lagged values of the time series can be used as
inputs to a neural network.
NNAR(p, k): p lagged inputs and k nodes in the single
hidden layer.
NNAR(p, 0) model is equivalent to an ARIMA(p, 0, 0)
model but without stationarity restrictions.
Seasonal NNAR(p, P, k): inputs
(yt−1 , yt−2 , . . . , yt−p , yt−m , yt−2m , yt−Pm ) and k
neurons in the hidden layer.
NNAR(p, P, 0)m model is equivalent to an
ARIMA(p, 0, 0)(P,0,0)m model but without
stationarity restrictions.
Forecasting using R Neural network models 30
NNAR models
Lagged values of the time series can be used as
inputs to a neural network.
NNAR(p, k): p lagged inputs and k nodes in the single
hidden layer.
NNAR(p, 0) model is equivalent to an ARIMA(p, 0, 0)
model but without stationarity restrictions.
Seasonal NNAR(p, P, k): inputs
(yt−1 , yt−2 , . . . , yt−p , yt−m , yt−2m , yt−Pm ) and k
neurons in the hidden layer.
NNAR(p, P, 0)m model is equivalent to an
ARIMA(p, 0, 0)(P,0,0)m model but without
stationarity restrictions.
Forecasting using R Neural network models 30
NNAR models
Lagged values of the time series can be used as
inputs to a neural network.
NNAR(p, k): p lagged inputs and k nodes in the single
hidden layer.
NNAR(p, 0) model is equivalent to an ARIMA(p, 0, 0)
model but without stationarity restrictions.
Seasonal NNAR(p, P, k): inputs
(yt−1 , yt−2 , . . . , yt−p , yt−m , yt−2m , yt−Pm ) and k
neurons in the hidden layer.
NNAR(p, P, 0)m model is equivalent to an
ARIMA(p, 0, 0)(P,0,0)m model but without
stationarity restrictions.
Forecasting using R Neural network models 30
NNAR models in R
The nnetar() function fits an NNAR(p, P, k)m model.
If p and P are not specified, they are automatically
selected.
For non-seasonal time series, default p = optimal
number of lags (according to the AIC) for a linear
AR(p) model.
For seasonal time series, defaults are P = 1 and p is
chosen from the optimal linear model fitted to the
seasonally adjusted data.
Default k = (p + P + 1)/2 (rounded to the nearest
integer).
Forecasting using R Neural network models 31
NNAR models in R
The nnetar() function fits an NNAR(p, P, k)m model.
If p and P are not specified, they are automatically
selected.
For non-seasonal time series, default p = optimal
number of lags (according to the AIC) for a linear
AR(p) model.
For seasonal time series, defaults are P = 1 and p is
chosen from the optimal linear model fitted to the
seasonally adjusted data.
Default k = (p + P + 1)/2 (rounded to the nearest
integer).
Forecasting using R Neural network models 31
NNAR models in R
The nnetar() function fits an NNAR(p, P, k)m model.
If p and P are not specified, they are automatically
selected.
For non-seasonal time series, default p = optimal
number of lags (according to the AIC) for a linear
AR(p) model.
For seasonal time series, defaults are P = 1 and p is
chosen from the optimal linear model fitted to the
seasonally adjusted data.
Default k = (p + P + 1)/2 (rounded to the nearest
integer).
Forecasting using R Neural network models 31
NNAR models in R
The nnetar() function fits an NNAR(p, P, k)m model.
If p and P are not specified, they are automatically
selected.
For non-seasonal time series, default p = optimal
number of lags (according to the AIC) for a linear
AR(p) model.
For seasonal time series, defaults are P = 1 and p is
chosen from the optimal linear model fitted to the
seasonally adjusted data.
Default k = (p + P + 1)/2 (rounded to the nearest
integer).
Forecasting using R Neural network models 31
NNAR models in R
The nnetar() function fits an NNAR(p, P, k)m model.
If p and P are not specified, they are automatically
selected.
For non-seasonal time series, default p = optimal
number of lags (according to the AIC) for a linear
AR(p) model.
For seasonal time series, defaults are P = 1 and p is
chosen from the optimal linear model fitted to the
seasonally adjusted data.
Default k = (p + P + 1)/2 (rounded to the nearest
integer).
Forecasting using R Neural network models 31
Sunspots
Surface of the sun contains magnetic regions that
appear as dark spots.
These affect the propagation of radio waves and so
telecommunication companies like to predict
sunspot activity in order to plan for any future
difficulties.
Sunspots follow a cycle of length between 9 and 14
years.
Forecasting using R Neural network models 32
Sunspots
Surface of the sun contains magnetic regions that
appear as dark spots.
These affect the propagation of radio waves and so
telecommunication companies like to predict
sunspot activity in order to plan for any future
difficulties.
Sunspots follow a cycle of length between 9 and 14
years.
Forecasting using R Neural network models 32
Sunspots
Surface of the sun contains magnetic regions that
appear as dark spots.
These affect the propagation of radio waves and so
telecommunication companies like to predict
sunspot activity in order to plan for any future
difficulties.
Sunspots follow a cycle of length between 9 and 14
years.
Forecasting using R Neural network models 32
NNAR(9,5) model for sunspots
Forecasts from NNAR(9,5)
3000
fit <- nnetar(sunspotarea)
plot(forecast(fit,h=20))
2500
2000
1500
1000
500
0
1900 1950 2000
Forecasting using R Neural network models 33
Outline
1 Vector autoregressions
2 Time series with complex seasonality
3 Lab session 17
4 Neural network models
5 Lab session 18
6 Lab session 19
Forecasting using R Lab session 18 34
Lab Session 18
Forecasting using R Lab session 18 35
Outline
1 Vector autoregressions
2 Time series with complex seasonality
3 Lab session 17
4 Neural network models
5 Lab session 18
6 Lab session 19
Forecasting using R Lab session 19 36
Lab Session 19
Forecasting using R Lab session 19 37