Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1)...

89
Forecasting using R 1 Forecasting using R Rob J Hyndman 2.4 Non-seasonal ARIMA models

Transcript of Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1)...

Page 1: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Forecasting using R 1

Forecasting using R

Rob J Hyndman

2.4 Non-seasonal ARIMA models

Page 2: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Outline1 Autoregressive models

2 Moving average models

3 Non-seasonal ARIMA models

4 Partial autocorrelations

5 Estimation and order selection

6 ARIMA modelling in R

7 Forecasting

8 Lab session 11

Forecasting using R Autoregressive models 2

Page 3: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Autoregressive modelsAutoregressive (AR) models:

yt = c + φ1yt−1 + φ2yt−2 + · · · + φpyt−p + et,where et is white noise. This is a multiple regression with**lagged values** of yt as predictors.

8

10

12

0 20 40 60 80 100Time

AR(1)

15.0

17.5

20.0

22.5

25.0

0 20 40 60 80 100Time

AR(2)

Forecasting using R Autoregressive models 3

Page 4: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

AR(1) modelyt = 2− 0.8yt−1 + et

et ∼ N(0, 1), T = 100.

8

10

12

0 20 40 60 80 100Time

AR(1)

Forecasting using R Autoregressive models 4

Page 5: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

AR(1) model

yt = c + φ1yt−1 + et

When φ1 = 0, yt is equivalent to WNWhen φ1 = 1 and c = 0, yt is equivalent to a RWWhen φ1 = 1 and c 6= 0, yt is equivalent to a RW withdriftWhen φ1 < 0, yt tends to oscillate between positiveand negative values.

Forecasting using R Autoregressive models 5

Page 6: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

AR(2) modelyt = 8 + 1.3yt−1 − 0.7yt−2 + et

et ∼ N(0, 1), T = 100.

15.0

17.5

20.0

22.5

25.0

0 20 40 60 80 100Time

AR(2)

Forecasting using R Autoregressive models 6

Page 7: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Stationarity conditionsWe normally restrict autoregressive models to stationarydata, and then some constraints on the values of theparameters are required.

General condition for stationarityComplex roots of 1− φ1z− φ2z2 − · · · − φpzp lie outsidethe unit circle on the complex plane.

For p = 1: −1 < φ1 < 1.For p = 2:\−1 < φ2 < 1 φ2 + φ1 < 1 φ2 − φ1 < 1.More complicated conditions hold for p ≥ 3.Estimation software takes care of this.

Forecasting using R Autoregressive models 7

Page 8: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Stationarity conditionsWe normally restrict autoregressive models to stationarydata, and then some constraints on the values of theparameters are required.

General condition for stationarityComplex roots of 1− φ1z− φ2z2 − · · · − φpzp lie outsidethe unit circle on the complex plane.

For p = 1: −1 < φ1 < 1.For p = 2:\−1 < φ2 < 1 φ2 + φ1 < 1 φ2 − φ1 < 1.More complicated conditions hold for p ≥ 3.Estimation software takes care of this.

Forecasting using R Autoregressive models 7

Page 9: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Outline1 Autoregressive models

2 Moving average models

3 Non-seasonal ARIMA models

4 Partial autocorrelations

5 Estimation and order selection

6 ARIMA modelling in R

7 Forecasting

8 Lab session 11

Forecasting using R Moving average models 8

Page 10: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Moving Average (MA) modelsMoving Average (MA) models:

yt = c + et + θ1et−1 + θ2et−2 + · · · + θqet−q,where et is white noise. This is a multiple regression with**past errors** as predictors. Don’t confuse this withmoving average smoothing!

18

20

22

0 20 40 60 80 100Time

MA(1)

−5.0

−2.5

0.0

2.5

0 20 40 60 80 100Time

MA(2)

Forecasting using R Moving average models 9

Page 11: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

MA(1) modelyt = 20 + et + 0.8et−1

et ∼ N(0, 1), T = 100.

18

20

22

0 20 40 60 80 100Time

MA(1)

Forecasting using R Moving average models 10

Page 12: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

MA(2) modelyt = et − et−1 + 0.8et−2

et ∼ N(0, 1), T = 100.

−5.0

−2.5

0.0

2.5

0 20 40 60 80 100Time

MA(2)

Forecasting using R Moving average models 11

Page 13: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Invertibility

Any MA(q) process can be written as an AR(∞)process if we impose some constraints on the MAparameters.Then the MA model is called {“invertible”.}Invertible models have some mathematical propertiesthat make them easier to use in practice.Invertibility of an ARIMA model is equivalent toforecastability of an ETS model.

Forecasting using R Moving average models 12

Page 14: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Invertibility

General condition for invertibilityComplex roots of 1 + θ1z + θ2z2 + · · · + θqzq lie outside theunit circle on the complex plane.

For q = 1: −1 < θ1 < 1.For q = 2:−1 < θ2 < 1 θ2 + θ1 > −1 θ1 − θ2 < 1.More complicated conditions hold for {q ≥ 3.}Estimation software takes care of this.

Forecasting using R Moving average models 13

Page 15: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Invertibility

General condition for invertibilityComplex roots of 1 + θ1z + θ2z2 + · · · + θqzq lie outside theunit circle on the complex plane.

For q = 1: −1 < θ1 < 1.For q = 2:−1 < θ2 < 1 θ2 + θ1 > −1 θ1 − θ2 < 1.More complicated conditions hold for {q ≥ 3.}Estimation software takes care of this.

Forecasting using R Moving average models 13

Page 16: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Outline1 Autoregressive models

2 Moving average models

3 Non-seasonal ARIMA models

4 Partial autocorrelations

5 Estimation and order selection

6 ARIMA modelling in R

7 Forecasting

8 Lab session 11

Forecasting using R Non-seasonal ARIMA models 14

Page 17: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

ARIMA modelsAutoregressive Moving Average models:

yt = c + φ1yt−1 + · · · + φpyt−p+ θ1et−1 + · · · + θqet−q + et.

Predictors include both lagged values of yt andlagged errors.Conditions on coefficients ensure stationarity.Conditions on coefficients ensure invertibility.

Autoregressive Integrated Moving Average modelsCombine ARMA model with differencing.(1− B)dyt follows an ARMA model.

Forecasting using R Non-seasonal ARIMA models 15

Page 18: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

ARIMA modelsAutoregressive Moving Average models:

yt = c + φ1yt−1 + · · · + φpyt−p+ θ1et−1 + · · · + θqet−q + et.

Predictors include both lagged values of yt andlagged errors.Conditions on coefficients ensure stationarity.Conditions on coefficients ensure invertibility.

Autoregressive Integrated Moving Average modelsCombine ARMA model with differencing.(1− B)dyt follows an ARMA model.

Forecasting using R Non-seasonal ARIMA models 15

Page 19: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

ARIMA modelsAutoregressive Moving Average models:

yt = c + φ1yt−1 + · · · + φpyt−p+ θ1et−1 + · · · + θqet−q + et.

Predictors include both lagged values of yt andlagged errors.Conditions on coefficients ensure stationarity.Conditions on coefficients ensure invertibility.

Autoregressive Integrated Moving Average modelsCombine ARMA model with differencing.(1− B)dyt follows an ARMA model.

Forecasting using R Non-seasonal ARIMA models 15

Page 20: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

ARIMA modelsAutoregressive Integrated Moving Average models

ARIMA(p, d, q) modelAR: p = order of the autoregressive partI: d = degree of first differencing involved

MA: q = order of the moving average part.

White noise model: ARIMA(0,0,0)Random walk: ARIMA(0,1,0) with no constantRandom walk with drift: ARIMA(0,1,0) with const.AR(p): ARIMA(p,0,0)MA(q): ARIMA(0,0,q)

Forecasting using R Non-seasonal ARIMA models 16

Page 21: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Backshift notation for ARIMAARMA model:

yt = c + φ1Byt + · · · + φpBpyt + et + θ1Bet + · · · + θqBqetor (1− φ1B− · · · − φpBp)yt = c + (1 + θ1B + · · · + θqBq)et

ARIMA(1,1,1) model:

(1− φ1B) (1− B)yt = c + (1 + θ1B)et↑ ↑ ↑

AR(1) First MA(1)difference

Written out:

yt = c + yt−1 + φ1yt−1 − φ1yt−2 + θ1et−1 + etForecasting using R Non-seasonal ARIMA models 17

Page 22: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Backshift notation for ARIMAARMA model:

yt = c + φ1Byt + · · · + φpBpyt + et + θ1Bet + · · · + θqBqetor (1− φ1B− · · · − φpBp)yt = c + (1 + θ1B + · · · + θqBq)et

ARIMA(1,1,1) model:

(1− φ1B) (1− B)yt = c + (1 + θ1B)et↑ ↑ ↑

AR(1) First MA(1)difference

Written out:

yt = c + yt−1 + φ1yt−1 − φ1yt−2 + θ1et−1 + etForecasting using R Non-seasonal ARIMA models 17

Page 23: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

US personal consumption

−2

−1

0

1

2

1970 1980 1990 2000 2010Year

Qua

rter

ly p

erce

ntag

e ch

ange

US consumption

Forecasting using R Non-seasonal ARIMA models 18

Page 24: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

US personal consumption(fit <- auto.arima(usconsumption[,1],

seasonal=FALSE))

## Series: usconsumption[, 1]## ARIMA(0,0,3) with non-zero mean#### Coefficients:## ma1 ma2 ma3 intercept## 0.2542 0.2260 0.2695 0.7562## s.e. 0.0767 0.0779 0.0692 0.0844#### sigma^2 estimated as 0.3953: log likelihood=-154.73## AIC=319.46 AICc=319.84 BIC=334.96

ARIMA(0,0,3) or MA(3) model:yt = 0.756 + et + 0.254et−1 + 0.226et−2 + 0.269et−3,

where et is white noise with standard deviation 0.63 =√0.3953.

Forecasting using R Non-seasonal ARIMA models 19

Page 25: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

US personal consumption(fit <- auto.arima(usconsumption[,1],

seasonal=FALSE))

## Series: usconsumption[, 1]## ARIMA(0,0,3) with non-zero mean#### Coefficients:## ma1 ma2 ma3 intercept## 0.2542 0.2260 0.2695 0.7562## s.e. 0.0767 0.0779 0.0692 0.0844#### sigma^2 estimated as 0.3953: log likelihood=-154.73## AIC=319.46 AICc=319.84 BIC=334.96

ARIMA(0,0,3) or MA(3) model:yt = 0.756 + et + 0.254et−1 + 0.226et−2 + 0.269et−3,

where et is white noise with standard deviation 0.63 =√0.3953.

Forecasting using R Non-seasonal ARIMA models 19

Page 26: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

US personal consumption

fit %>% forecast(h=10) %>% autoplot(include=80)

−1

0

1

2

1990 1995 2000 2005 2010Time

y

level

80

95

Forecasts from ARIMA(0,0,3) with non−zero mean

Forecasting using R Non-seasonal ARIMA models 20

Page 27: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Understanding ARIMA models

If c = 0 and d = 0, the long-term forecasts will go tozero.If c = 0 and d = 1, the long-term forecasts will go to anon-zero constant.If c = 0 and d = 2, the long-term forecasts will follow astraight line.If c 6= 0 and d = 0, the long-term forecasts will go tothe mean of the data.If c 6= 0 and d = 1, the long-term forecasts will follow astraight line.If c 6= 0 and d = 2, the long-term forecasts will follow aquadratic trend.

Forecasting using R Non-seasonal ARIMA models 21

Page 28: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Understanding ARIMA modelsForecast variance and d

The higher the value of d, the more rapidly theprediction intervals increase in size.For d = 0, the long-term forecast standard deviationwill go to the standard deviation of the historical data.

Cyclic behaviourFor cyclic forecasts, p > 2 and some restrictions oncoefficients are required.If p = 2, we need φ21 + 4φ2 < 0. Then average cycle oflength

(2π)/[arc cos(−φ1(1− φ2)/(4φ2))

].

Forecasting using R Non-seasonal ARIMA models 22

Page 29: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Outline1 Autoregressive models

2 Moving average models

3 Non-seasonal ARIMA models

4 Partial autocorrelations

5 Estimation and order selection

6 ARIMA modelling in R

7 Forecasting

8 Lab session 11

Forecasting using R Partial autocorrelations 23

Page 30: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Partial autocorrelationsPartial autocorrelationsmeasure relationshipbetween yt and yt−k, when the effects of other time lags —1, 2, 3, . . . , k− 1 — are removed.

αk = kth partial autocorrelation coefficient= equal to the estimate of bk in regression:

yt = c + φ1yt−1 + φ2yt−2 + · · · + φkyt−k.

Varying number of terms on RHS gives αk for differentvalues of k.There are more efficient ways of calculating αk.α1 = ρ1same critical values of±1.96/

√T as for ACF.

Forecasting using R Partial autocorrelations 24

Page 31: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Partial autocorrelationsPartial autocorrelationsmeasure relationshipbetween yt and yt−k, when the effects of other time lags —1, 2, 3, . . . , k− 1 — are removed.

αk = kth partial autocorrelation coefficient= equal to the estimate of bk in regression:

yt = c + φ1yt−1 + φ2yt−2 + · · · + φkyt−k.

Varying number of terms on RHS gives αk for differentvalues of k.There are more efficient ways of calculating αk.α1 = ρ1same critical values of±1.96/

√T as for ACF.

Forecasting using R Partial autocorrelations 24

Page 32: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Partial autocorrelationsPartial autocorrelationsmeasure relationshipbetween yt and yt−k, when the effects of other time lags —1, 2, 3, . . . , k− 1 — are removed.

αk = kth partial autocorrelation coefficient= equal to the estimate of bk in regression:

yt = c + φ1yt−1 + φ2yt−2 + · · · + φkyt−k.

Varying number of terms on RHS gives αk for differentvalues of k.There are more efficient ways of calculating αk.α1 = ρ1same critical values of±1.96/

√T as for ACF.

Forecasting using R Partial autocorrelations 24

Page 33: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Example: US consumption

−2

−1

0

1

2

1970 1980 1990 2000 2010Year

Qua

rter

ly p

erce

ntag

e ch

ange

US consumption

Forecasting using R Partial autocorrelations 25

Page 34: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Example: US consumption

−0.1

0.0

0.1

0.2

0.3

4 8 12 16 20Lag

AC

F

−0.1

0.0

0.1

0.2

0.3

4 8 12 16 20Lag

PAC

F

Forecasting using R Partial autocorrelations 26

Page 35: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

ACF and PACF interpretationARIMA(p,d,0)model if ACF and PACF plots of differenceddata show:

the ACF is exponentially decaying or sinusoidal;there is a significant spike at lag p in PACF, but nonebeyond lag p.

ARIMA(0,d,q)model if ACF and PACF plots of differenceddata show:

the PACF is exponentially decaying or sinusoidal;there is a significant spike at lag q in ACF, but nonebeyond lag q.

Forecasting using R Partial autocorrelations 27

Page 36: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

ACF and PACF interpretationARIMA(p,d,0)model if ACF and PACF plots of differenceddata show:

the ACF is exponentially decaying or sinusoidal;there is a significant spike at lag p in PACF, but nonebeyond lag p.

ARIMA(0,d,q)model if ACF and PACF plots of differenceddata show:

the PACF is exponentially decaying or sinusoidal;there is a significant spike at lag q in ACF, but nonebeyond lag q.

Forecasting using R Partial autocorrelations 27

Page 37: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Example: Mink trapping

30000

60000

90000

1850 1860 1870 1880 1890 1900 1910Year

Min

ks tr

appe

d (t

hous

ands

)

Annual number of minks trapped

Forecasting using R Partial autocorrelations 28

Page 38: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Example: Mink trapping

−0.4

−0.2

0.0

0.2

0.4

0.6

5 10 15Lag

AC

F

−0.2

0.0

0.2

0.4

0.6

5 10 15Lag

PAC

F

Forecasting using R Partial autocorrelations 29

Page 39: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Outline1 Autoregressive models

2 Moving average models

3 Non-seasonal ARIMA models

4 Partial autocorrelations

5 Estimation and order selection

6 ARIMA modelling in R

7 Forecasting

8 Lab session 11

Forecasting using R Estimation and order selection 30

Page 40: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Maximum likelihood estimationHaving identified the model order, we need to estimatethe parameters c, φ1, . . . , φp, θ1, . . . , θq.

MLE is very similar to least squares estimationobtained by minimizing

T∑t−1

e2t .

The Arima() command allows CLS or MLEestimation.Non-linear optimization must be used in either case.Different software will give different estimates.

Forecasting using R Estimation and order selection 31

Page 41: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Maximum likelihood estimationHaving identified the model order, we need to estimatethe parameters c, φ1, . . . , φp, θ1, . . . , θq.

MLE is very similar to least squares estimationobtained by minimizing

T∑t−1

e2t .

The Arima() command allows CLS or MLEestimation.Non-linear optimization must be used in either case.Different software will give different estimates.

Forecasting using R Estimation and order selection 31

Page 42: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Information criteriaAkaike’s Information Criterion (AIC):

AIC = −2 log(L) + 2(p + q + k + 1),where L is the likelihood of the data,k = 1 if c 6= 0 and k = 0 if c = 0.Corrected AIC:

AICc = AIC +2(p + q + k + 1)(p + q + k + 2)

T − p− q− k− 2.

Bayesian Information Criterion:BIC = AIC + log(T)(p + q + k− 1).

Good models are obtained by minimizing either the AIC,AICc or BIC. Our preference is to use the AICc.

Forecasting using R Estimation and order selection 32

Page 43: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Information criteriaAkaike’s Information Criterion (AIC):

AIC = −2 log(L) + 2(p + q + k + 1),where L is the likelihood of the data,k = 1 if c 6= 0 and k = 0 if c = 0.Corrected AIC:

AICc = AIC +2(p + q + k + 1)(p + q + k + 2)

T − p− q− k− 2.

Bayesian Information Criterion:BIC = AIC + log(T)(p + q + k− 1).

Good models are obtained by minimizing either the AIC,AICc or BIC. Our preference is to use the AICc.

Forecasting using R Estimation and order selection 32

Page 44: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Information criteriaAkaike’s Information Criterion (AIC):

AIC = −2 log(L) + 2(p + q + k + 1),where L is the likelihood of the data,k = 1 if c 6= 0 and k = 0 if c = 0.Corrected AIC:

AICc = AIC +2(p + q + k + 1)(p + q + k + 2)

T − p− q− k− 2.

Bayesian Information Criterion:BIC = AIC + log(T)(p + q + k− 1).

Good models are obtained by minimizing either the AIC,AICc or BIC. Our preference is to use the AICc.

Forecasting using R Estimation and order selection 32

Page 45: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Information criteriaAkaike’s Information Criterion (AIC):

AIC = −2 log(L) + 2(p + q + k + 1),where L is the likelihood of the data,k = 1 if c 6= 0 and k = 0 if c = 0.Corrected AIC:

AICc = AIC +2(p + q + k + 1)(p + q + k + 2)

T − p− q− k− 2.

Bayesian Information Criterion:BIC = AIC + log(T)(p + q + k− 1).

Good models are obtained by minimizing either the AIC,AICc or BIC. Our preference is to use the AICc.

Forecasting using R Estimation and order selection 32

Page 46: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Outline1 Autoregressive models

2 Moving average models

3 Non-seasonal ARIMA models

4 Partial autocorrelations

5 Estimation and order selection

6 ARIMA modelling in R

7 Forecasting

8 Lab session 11

Forecasting using R ARIMA modelling in R 33

Page 47: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

How does auto.arima() work?

A non-seasonal ARIMA process

φ(B)(1− B)dyt = c + θ(B)εtNeed to select appropriate orders: p, q, d

Hyndman and Khandakar (JSS, 2008) algorithm:

Select no. differences d and D via unit root tests.Select p, q by minimising AICc.Use stepwise search to traverse model space.

Forecasting using R ARIMA modelling in R 34

Page 48: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

How does auto.arima() work?AICc = −2 log(L) + 2(p + q + k + 1)

[1 + (p+q+k+2)

T−p−q−k−2

].

where L is the maximised likelihood fitted to the differenced data,k = 1 if c 6= 0 and k = 0 otherwise.

Step1: Select current model (with smallest AICc) from:ARIMA(2, d, 2)ARIMA(0, d, 0)ARIMA(1, d, 0)ARIMA(0, d, 1)

Step 2: Consider variations of current model:vary one of p, q, from current model by±1;p, q both vary from current model by±1;Include/exclude c from current model.

Model with lowest AICc becomes current model.Repeat Step 2 until no lower AICc can be found.

Forecasting using R ARIMA modelling in R 35

Page 49: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

How does auto.arima() work?AICc = −2 log(L) + 2(p + q + k + 1)

[1 + (p+q+k+2)

T−p−q−k−2

].

where L is the maximised likelihood fitted to the differenced data,k = 1 if c 6= 0 and k = 0 otherwise.

Step1: Select current model (with smallest AICc) from:ARIMA(2, d, 2)ARIMA(0, d, 0)ARIMA(1, d, 0)ARIMA(0, d, 1)

Step 2: Consider variations of current model:vary one of p, q, from current model by±1;p, q both vary from current model by±1;Include/exclude c from current model.

Model with lowest AICc becomes current model.Repeat Step 2 until no lower AICc can be found.

Forecasting using R ARIMA modelling in R 35

Page 50: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

How does auto.arima() work?AICc = −2 log(L) + 2(p + q + k + 1)

[1 + (p+q+k+2)

T−p−q−k−2

].

where L is the maximised likelihood fitted to the differenced data,k = 1 if c 6= 0 and k = 0 otherwise.

Step1: Select current model (with smallest AICc) from:ARIMA(2, d, 2)ARIMA(0, d, 0)ARIMA(1, d, 0)ARIMA(0, d, 1)

Step 2: Consider variations of current model:vary one of p, q, from current model by±1;p, q both vary from current model by±1;Include/exclude c from current model.

Model with lowest AICc becomes current model.Repeat Step 2 until no lower AICc can be found.

Forecasting using R ARIMA modelling in R 35

Page 51: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own model

ggtsdisplay(internet)

80

120

160

200

0 20 40 60 80 100Time

x

internet

−0.5

0.0

0.5

1.0

5 10 15 20Lag

AC

F

−0.5

0.0

0.5

1.0

5 10 15 20Lag

PAC

F

Forecasting using R ARIMA modelling in R 36

Page 52: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own modeladf.test(internet)

#### Augmented Dickey-Fuller Test#### data: internet## Dickey-Fuller = -2.6421, Lag order = 4, p-value = 0.3107## alternative hypothesis: stationary

kpss.test(internet)

#### KPSS Test for Level Stationarity#### data: internet## KPSS Level = 0.72197, Truncation lag parameter = 2, p-value =## 0.01155

Forecasting using R ARIMA modelling in R 37

Page 53: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own model

kpss.test(diff(internet))

#### KPSS Test for Level Stationarity#### data: diff(internet)## KPSS Level = 0.26352, Truncation lag parameter = 2, p-value = 0.1

Forecasting using R ARIMA modelling in R 38

Page 54: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own model

ggtsdisplay(diff(internet))

−15

−10

−5

0

5

10

15

0 20 40 60 80 100Time

x

diff(internet)

0.0

0.5

5 10 15 20Lag

AC

F

0.0

0.5

5 10 15 20Lag

PAC

F

Forecasting using R ARIMA modelling in R 39

Page 55: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own model

(fit <- Arima(internet,order=c(3,1,0)))

## Series: internet## ARIMA(3,1,0)#### Coefficients:## ar1 ar2 ar3## 1.1513 -0.6612 0.3407## s.e. 0.0950 0.1353 0.0941#### sigma^2 estimated as 9.656: log likelihood=-252## AIC=511.99 AICc=512.42 BIC=522.37

Forecasting using R ARIMA modelling in R 40

Page 56: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own model

(fit2 <- auto.arima(internet))

## Series: internet## ARIMA(1,1,1)#### Coefficients:## ar1 ma1## 0.6504 0.5256## s.e. 0.0842 0.0896#### sigma^2 estimated as 9.995: log likelihood=-254.15## AIC=514.3 AICc=514.55 BIC=522.08

Forecasting using R ARIMA modelling in R 41

Page 57: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own model

ggtsdisplay(residuals(fit))

−5

0

5

0 20 40 60 80 100Time

x

residuals(fit)

−0.2

−0.1

0.0

0.1

0.2

5 10 15 20Lag

AC

F

−0.2

−0.1

0.0

0.1

0.2

5 10 15 20Lag

PAC

F

Forecasting using R ARIMA modelling in R 42

Page 58: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own model

Box.test(residuals(fit), fitdf=3, lag=10,type="Ljung")

#### Box-Ljung test#### data: residuals(fit)## X-squared = 4.4913, df = 7, p-value = 0.7218

Forecasting using R ARIMA modelling in R 43

Page 59: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Choosing your own model

fit %>% forecast %>% autoplot

100

150

200

250

0 30 60 90Time

y

level

80

95

Forecasts from ARIMA(3,1,0)

Forecasting using R ARIMA modelling in R 44

Page 60: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Modelling procedure with Arima1 Plot the data. Identify any unusual observations.2 If necessary, transform the data (using a Box-Cox

transformation) to stabilize the variance.3 If the data are non-stationary: take first differences of the

data until the data are stationary.4 Examine the ACF/PACF: Is an AR(p) or MA(q) model

appropriate?5 Try your chosen model(s), and use the AICc to search for a

better model.6 Check the residuals from your chosen model by plotting

the ACF of the residuals, and doing a portmanteau test ofthe residuals. If they do not look like white noise, try amodified model.

7 Once the residuals look like white noise, calculateforecasts.

Forecasting using R ARIMA modelling in R 45

Page 61: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Modelling procedure with auto.arima1 Plot the data. Identify any unusual observations.2 If necessary, transform the data (using a Box-Cox

transformation) to stabilize the variance.

3 Use auto.arima to select a model.

6 Check the residuals from your chosen model by plottingthe ACF of the residuals, and doing a portmanteau test ofthe residuals. If they do not look like white noise, try amodified model.

7 Once the residuals look like white noise, calculateforecasts.

Forecasting using R ARIMA modelling in R 46

Page 62: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Modelling procedure 8/ arima models 177

1. Plot the data. Identifyunusual observations.Understand patterns.

2. If necessary, use a Box-Cox transformation tostabilize the variance.

Select modelorder yourself.

Use automatedalgorithm.

3. If necessary, differencethe data until it appearsstationary. Use unit-roottests if you are unsure.

4. Plot the ACF/PACF ofthe differenced data and

try to determine pos-sible candidate models.

5. Try your chosen model(s)and use the AICc to

search for a better model.

6. Check the residualsfrom your chosen model

by plotting the ACF of theresiduals, and doing a port-

manteau test of the residuals.

Use auto.arima() to findthe best ARIMA model

for your time series.

Do theresidualslook like

whitenoise?

7. Calculate forecasts.

yes

no

Figure 8.10: General process for fore-casting using an ARIMA model.

Forecasting using R ARIMA modelling in R 47

Page 63: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Seasonally adjusted electrical equipment

eeadj <- seasadj(stl(elecequip, s.window="periodic"))autoplot(eeadj) + xlab("Year") +

ylab("Seasonally adjusted new orders index")

80

90

100

110

2000 2005 2010Year

Sea

sona

lly a

djus

ted

new

ord

ers

inde

x

Forecasting using R ARIMA modelling in R 48

Page 64: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Seasonally adjusted electrical equipment

1 Time plot shows sudden changes, particularly bigdrop in 2008/2009 due to global economicenvironment. Otherwise nothing unusual and noneed for data adjustments.

2 No evidence of changing variance, so no Box-Coxtransformation.

3 Data are clearly non-stationary, so we take firstdifferences.

Forecasting using R ARIMA modelling in R 49

Page 65: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Seasonally adjusted electricalequipment

ggtsdisplay(diff(eeadj), main="")

−10

−5

0

5

10

2000 2005 2010Time

x

−0.4

−0.2

0.0

0.2

0.4

12 24 36Lag

AC

F

−0.4

−0.2

0.0

0.2

0.4

12 24 36Lag

PAC

F

Forecasting using R ARIMA modelling in R 50

Page 66: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Seasonally adjusted electrical equipment

4 PACF is suggestive of AR(3). So initial candidate modelis ARIMA(3,1,0). No other obvious candidates.

5 Fit ARIMA(3,1,0) model along with variations:ARIMA(4,1,0), ARIMA(2,1,0), ARIMA(3,1,1), etc.ARIMA(3,1,1) has smallest AICc value.

Forecasting using R ARIMA modelling in R 51

Page 67: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Seasonally adjusted electrical equipment

fit <- Arima(eeadj, order=c(3,1,1))summary(fit)

## Series: eeadj## ARIMA(3,1,1)#### Coefficients:## ar1 ar2 ar3 ma1## 0.0519 0.1191 0.3730 -0.4542## s.e. 0.1840 0.0888 0.0679 0.1993#### sigma^2 estimated as 9.737: log likelihood=-484.08## AIC=978.17 AICc=978.49 BIC=994.4#### Training set error measures:## ME RMSE MAE MPE MAPE MASE## Training set -0.001227744 3.079373 2.389267 -0.04290849 2.517748 0.2913919## ACF1## Training set 0.008928479

Forecasting using R ARIMA modelling in R 52

Page 68: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Seasonally adjusted electrical equipment

6 ACF plot of residuals from ARIMA(3,1,1) model looklike white noise.

ggAcf(residuals(fit))

−0.15

−0.10

−0.05

0.00

0.05

0.10

0.15

12 246 18Lag

AC

F

Series: residuals(fit)

Forecasting using R ARIMA modelling in R 53

Page 69: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Seasonally adjusted electrical equipment

Box.test(residuals(fit), lag=24,fitdf=4, type="Ljung")

#### Box-Ljung test#### data: residuals(fit)## X-squared = 20.496, df = 20, p-value = 0.4273

Forecasting using R ARIMA modelling in R 54

Page 70: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Seasonally adjusted electrical equipment

fit %>% forecast %>% autoplot

60

80

100

120

2000 2005 2010Time

y

level

80

95

Forecasts from ARIMA(3,1,1)

Forecasting using R ARIMA modelling in R 55

Page 71: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Outline1 Autoregressive models

2 Moving average models

3 Non-seasonal ARIMA models

4 Partial autocorrelations

5 Estimation and order selection

6 ARIMA modelling in R

7 Forecasting

8 Lab session 11

Forecasting using R Forecasting 56

Page 72: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecasts

1 Rearrange ARIMA equation so yt is on LHS.2 Rewrite equation by replacing t by T + h.3 On RHS, replace future observations by their

forecasts, future errors by zero, and past errors bycorresponding residuals.

Start with h = 1. Repeat for h = 2, 3, . . ..

Forecasting using R Forecasting 57

Page 73: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecastsARIMA(3,1,1) forecasts: Step 1

(1− φ1B− φ2B2 − φ3B3)(1− B)yt = (1 + θ1B)et,

[1− (1 + φ1)B + (φ1 − φ2)B2 + (φ2 − φ3)B3 + φ3B4

]yt

= (1 + θ1B)et,

yt − (1 + φ1)yt−1 + (φ1 − φ2)yt−2 + (φ2 − φ3)yt−3+ φ3yt−4 = et + θ1et−1.

yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3− φ3yt−4 + et + θ1et−1.

Forecasting using R Forecasting 58

Page 74: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecastsARIMA(3,1,1) forecasts: Step 1

(1− φ1B− φ2B2 − φ3B3)(1− B)yt = (1 + θ1B)et,

[1− (1 + φ1)B + (φ1 − φ2)B2 + (φ2 − φ3)B3 + φ3B4

]yt

= (1 + θ1B)et,

yt − (1 + φ1)yt−1 + (φ1 − φ2)yt−2 + (φ2 − φ3)yt−3+ φ3yt−4 = et + θ1et−1.

yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3− φ3yt−4 + et + θ1et−1.

Forecasting using R Forecasting 58

Page 75: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecastsARIMA(3,1,1) forecasts: Step 1

(1− φ1B− φ2B2 − φ3B3)(1− B)yt = (1 + θ1B)et,

[1− (1 + φ1)B + (φ1 − φ2)B2 + (φ2 − φ3)B3 + φ3B4

]yt

= (1 + θ1B)et,

yt − (1 + φ1)yt−1 + (φ1 − φ2)yt−2 + (φ2 − φ3)yt−3+ φ3yt−4 = et + θ1et−1.

yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3− φ3yt−4 + et + θ1et−1.

Forecasting using R Forecasting 58

Page 76: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecastsARIMA(3,1,1) forecasts: Step 1

(1− φ1B− φ2B2 − φ3B3)(1− B)yt = (1 + θ1B)et,

[1− (1 + φ1)B + (φ1 − φ2)B2 + (φ2 − φ3)B3 + φ3B4

]yt

= (1 + θ1B)et,

yt − (1 + φ1)yt−1 + (φ1 − φ2)yt−2 + (φ2 − φ3)yt−3+ φ3yt−4 = et + θ1et−1.

yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3− φ3yt−4 + et + θ1et−1.

Forecasting using R Forecasting 58

Page 77: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecasts (h=1)yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3

− φ3yt−4 + et + θ1et−1.

ARIMA(3,1,1) forecasts: Step 2

yT+1 = (1 + φ1)yT − (φ1 − φ2)yT−1 − (φ2 − φ3)yT−2− φ3yT−3 + eT+1 + θ1eT.

ARIMA(3,1,1) forecasts: Step 3

yT+1|T = (1 + φ1)yT − (φ1 − φ2)yT−1 − (φ2 − φ3)yT−2− φ3yT−3 + θ1eT.

Forecasting using R Forecasting 59

Page 78: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecasts (h=1)yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3

− φ3yt−4 + et + θ1et−1.

ARIMA(3,1,1) forecasts: Step 2

yT+1 = (1 + φ1)yT − (φ1 − φ2)yT−1 − (φ2 − φ3)yT−2− φ3yT−3 + eT+1 + θ1eT.

ARIMA(3,1,1) forecasts: Step 3

yT+1|T = (1 + φ1)yT − (φ1 − φ2)yT−1 − (φ2 − φ3)yT−2− φ3yT−3 + θ1eT.

Forecasting using R Forecasting 59

Page 79: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecasts (h=1)yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3

− φ3yt−4 + et + θ1et−1.

ARIMA(3,1,1) forecasts: Step 2

yT+1 = (1 + φ1)yT − (φ1 − φ2)yT−1 − (φ2 − φ3)yT−2− φ3yT−3 + eT+1 + θ1eT.

ARIMA(3,1,1) forecasts: Step 3

yT+1|T = (1 + φ1)yT − (φ1 − φ2)yT−1 − (φ2 − φ3)yT−2− φ3yT−3 + θ1eT.

Forecasting using R Forecasting 59

Page 80: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecasts (h=2)yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3

− φ3yt−4 + et + θ1et−1.

ARIMA(3,1,1) forecasts: Step 2

yT+2 = (1 + φ1)yT+1 − (φ1 − φ2)yT − (φ2 − φ3)yT−1− φ3yT−2 + eT+2 + θ1eT+1.

ARIMA(3,1,1) forecasts: Step 3

yT+2|T = (1 + φ1)yT+1|T − (φ1 − φ2)yT − (φ2 − φ3)yT−1− φ3yT−2.

Forecasting using R Forecasting 60

Page 81: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecasts (h=2)yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3

− φ3yt−4 + et + θ1et−1.

ARIMA(3,1,1) forecasts: Step 2

yT+2 = (1 + φ1)yT+1 − (φ1 − φ2)yT − (φ2 − φ3)yT−1− φ3yT−2 + eT+2 + θ1eT+1.

ARIMA(3,1,1) forecasts: Step 3

yT+2|T = (1 + φ1)yT+1|T − (φ1 − φ2)yT − (φ2 − φ3)yT−1− φ3yT−2.

Forecasting using R Forecasting 60

Page 82: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Point forecasts (h=2)yt = (1 + φ1)yt−1 − (φ1 − φ2)yt−2 − (φ2 − φ3)yt−3

− φ3yt−4 + et + θ1et−1.

ARIMA(3,1,1) forecasts: Step 2

yT+2 = (1 + φ1)yT+1 − (φ1 − φ2)yT − (φ2 − φ3)yT−1− φ3yT−2 + eT+2 + θ1eT+1.

ARIMA(3,1,1) forecasts: Step 3

yT+2|T = (1 + φ1)yT+1|T − (φ1 − φ2)yT − (φ2 − φ3)yT−1− φ3yT−2.

Forecasting using R Forecasting 60

Page 83: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Prediction intervals95% Prediction interval

yT+h|T ± 1.96√vT+h|T

where vT+h|T is estimated forecast variance.

vT+1|T = σ2 for all ARIMA models regardless ofparameters and orders.Multi-step prediction intervals for ARIMA(0,0,q):

yt = et +q∑i=1θiet−i.

vT|T+h = σ21 + h−1∑

i=1θ2i

, for h = 2, 3, . . . .

Forecasting using R Forecasting 61

Page 84: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Prediction intervals95% Prediction interval

yT+h|T ± 1.96√vT+h|T

where vT+h|T is estimated forecast variance.

vT+1|T = σ2 for all ARIMA models regardless ofparameters and orders.Multi-step prediction intervals for ARIMA(0,0,q):

yt = et +q∑i=1θiet−i.

vT|T+h = σ21 + h−1∑

i=1θ2i

, for h = 2, 3, . . . .

Forecasting using R Forecasting 61

Page 85: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Prediction intervals95% Prediction interval

yT+h|T ± 1.96√vT+h|T

where vT+h|T is estimated forecast variance.

Multi-step prediction intervals for ARIMA(0,0,q):

yt = et +q∑i=1θiet−i.

vT|T+h = σ21 + h−1∑

i=1θ2i

, for h = 2, 3, . . . .

AR(1): Rewrite as MA(∞) and use above result.Other models beyond scope of this workshop.

Forecasting using R Forecasting 62

Page 86: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Prediction intervals95% Prediction interval

yT+h|T ± 1.96√vT+h|T

where vT+h|T is estimated forecast variance.

Multi-step prediction intervals for ARIMA(0,0,q):

yt = et +q∑i=1θiet−i.

vT|T+h = σ21 + h−1∑

i=1θ2i

, for h = 2, 3, . . . .

AR(1): Rewrite as MA(∞) and use above result.Other models beyond scope of this workshop.

Forecasting using R Forecasting 62

Page 87: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Prediction intervals

Prediction intervals increase in size with forecasthorizon.Prediction intervals can be difficult to calculate byhandCalculations assume residuals are uncorrelated andnormally distributed.Prediction intervals tend to be too narrow.

the uncertainty in the parameter estimates has not beenaccounted for.the ARIMA model assumes historical patterns will notchange during the forecast period.the ARIMA model assumes uncorrelated future errors

Forecasting using R Forecasting 63

Page 88: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Outline1 Autoregressive models

2 Moving average models

3 Non-seasonal ARIMA models

4 Partial autocorrelations

5 Estimation and order selection

6 ARIMA modelling in R

7 Forecasting

8 Lab session 11

Forecasting using R Lab session 11 64

Page 89: Forecasting using R0 20 40 60 80 100 Time MA(2) Forecasting using R Moving average models 9 MA(1) model y t = 20+e t +0.8e t−1 e t ∼N(0,1), T = 100. 18 20 22 0 20 40 60 80 100

Lab Session 11

Forecasting using R Lab session 11 65