forecasting using r - rob j hyndman · outline 1time series components 2stl decomposition...

33
Forecasting using R 1 Forecasting using R Rob J Hyndman 1.3 Seasonality and trends

Upload: dangquynh

Post on 28-Jul-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Forecasting using R 1

Forecasting using R

Rob J Hyndman

1.3 Seasonality and trends

Page 2: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Outline

1 Time series components

2 STL decomposition

3 Forecasting and decomposition

4 Lab session 5

Forecasting using R Time series components 2

Page 3: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series patterns

Trend pattern exists when there is a long-termincrease or decrease in the data.

Seasonal pattern exists when a series is influenced byseasonal factors (e.g., the quarter of the year,the month, or day of the week).

Cyclic pattern exists when data exhibit rises and fallsthat are not of fixed period (duration usually ofat least 2 years).

Forecasting using R Time series components 3

Page 4: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series components

Differences between seasonal and cyclic patterns:seasonal pattern constant length; cyclic patternvariable lengthaverage length of cycle longer than length of seasonalpatternmagnitude of cycle more variable than magnitude ofseasonal pattern

Forecasting using R Time series components 4

Page 5: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series patterns

40

60

80

1975 1980 1985 1990 1995Year

Tota

l sal

es

Sales of new one−family houses, USA

Forecasting using R Time series components 5

Page 6: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series patterns

86

88

90

0 20 40 60 80 100Day

pric

e

US Treasury Bill Contracts

Forecasting using R Time series components 6

Page 7: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series patterns

4000

8000

12000

16000

1960 1970 1980 1990Year

GW

h

Australian monthly electricity production

Forecasting using R Time series components 7

Page 8: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series patterns

−100

−50

0

50

0 50 100 150 200 250 300Day

Daily change in Dow Jones Index

Forecasting using R Time series components 8

Page 9: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series decomposition

Yt = f(St, Tt, Et)

where Yt = data at period tSt = seasonal component at period tTt = trend-cycle component at period tEt = remainder (or irregular or error) compo-

nent at period t

Additive decomposition: Yt = St + Tt + Et.Multiplicative decomposition: Yt = St × Tt × Et.

Forecasting using R Time series components 9

Page 10: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series decomposition

Yt = f(St, Tt, Et)

where Yt = data at period tSt = seasonal component at period tTt = trend-cycle component at period tEt = remainder (or irregular or error) compo-

nent at period t

Additive decomposition: Yt = St + Tt + Et.Multiplicative decomposition: Yt = St × Tt × Et.

Forecasting using R Time series components 9

Page 11: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series decomposition

Yt = f(St, Tt, Et)

where Yt = data at period tSt = seasonal component at period tTt = trend-cycle component at period tEt = remainder (or irregular or error) compo-

nent at period t

Additive decomposition: Yt = St + Tt + Et.Multiplicative decomposition: Yt = St × Tt × Et.

Forecasting using R Time series components 9

Page 12: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Time series decomposition

Additive model appropriate if magnitude of seasonalfluctuations does not vary with level.If seasonal are proportional to level of series, thenmultiplicative model appropriate.Multiplicative decomposition more prevalent witheconomic seriesAlternative: use a Box-Cox transformation, and thenuse additive decomposition.Logs turn multiplicative relationship into an additiverelationship:

Yt = St × Tt × Et ⇒ log Yt = log St + log Tt + log Et.Forecasting using R Time series components 10

Page 13: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Euro electrical equipment

60

80

100

120

2000 2005 2010

New

ord

ers

inde

x

series

Data

Trend

Electrical equipment manufacturing (Euro area)

Forecasting using R Time series components 11

Page 14: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Euro electrical equipment

60

80

100

120

−20

−10

0

10

80

90

100

110

−8

−4

0

4

data

seas

onal

tren

dre

mai

nder

2000 2005 2010Time

Forecasting using R Time series components 12

Page 15: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Euro electrical equipment

−20

−10

0

10

Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov DecMonth

Sea

sona

l

Forecasting using R Time series components 13

Page 16: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Seasonal adjustment

Useful by-product of decomposition: an easy way tocalculate seasonally adjusted data.Additive decomposition: seasonally adjusted datagiven by

Yt − St = Tt + EtMultiplicative decomposition: seasonally adjusteddata given by

Yt/St = Tt × Et

Forecasting using R Time series components 14

Page 17: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Euro electrical equipment

60

80

100

120

2000 2005 2010

New

ord

ers

inde

x

series

Data

SeasAdjust

Electrical equipment manufacturing

Forecasting using R Time series components 15

Page 18: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Seasonal adjustment

We use estimates of S based on past values toseasonally adjust a current value.Seasonally adjusted series reflect remainders as wellas trend. Therefore they are not “smooth” and“downturns” or “upturns” can be misleading.It is better to use the trend-cycle component to lookfor turning points.

Forecasting using R Time series components 16

Page 19: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

History of time series decomposition

Classical method originated in 1920s.Census II method introduced in 1957. Basis formodern X-12-ARIMA method.STL method introduced in 1983TRAMO/SEATS introduced in 1990s.

Forecasting using R Time series components 17

Page 20: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Outline

1 Time series components

2 STL decomposition

3 Forecasting and decomposition

4 Lab session 5

Forecasting using R STL decomposition 18

Page 21: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

STL decomposition

STL: “Seasonal and Trend decomposition using Loess”,Very versatile and robust.Unlike X-12-ARIMA, STL will handle any type ofseasonality.Seasonal component allowed to change over time,and rate of change controlled by user.Smoothness of trend-cycle also controlled by user.Robust to outliersNot trading day or calendar adjustments.Only additive.

Forecasting using R STL decomposition 19

Page 22: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Euro electrical equipmentlibrary(magrittr)elecequip %>% stl(s.window=5) %>%

autoplot

60

80

100

120

−20

−10

0

10

80

90

100

110

−8

−4

0

4

data

seas

onal

tren

dre

mai

nder

2000 2005 2010TimeForecasting using R STL decomposition 20

Page 23: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Euro electrical equipmentelecequip %>%

stl(t.window=15, s.window='periodic', robust=TRUE) %>%autoplot

60

80

100

120

−10

0

10

80

90

100

110

−5

0

5

10

data

seas

onal

tren

dre

mai

nder

2000 2005 2010TimeForecasting using R STL decomposition 21

Page 24: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

STL decomposition in R

t.window controls wiggliness of trend component.s.window controls variation on seasonal component.

Forecasting using R STL decomposition 22

Page 25: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Outline

1 Time series components

2 STL decomposition

3 Forecasting and decomposition

4 Lab session 5

Forecasting using R Forecasting and decomposition 23

Page 26: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Forecasting and decomposition

Forecast seasonal component by repeating the lastyearForecast seasonally adjusted data using non-seasonaltime series method. E.g.,

Holt’s method — next topicRandom walk with drift model

Combine forecasts of seasonal component withforecasts of seasonally adjusted data to get forecastsof original data.Sometimes a decomposition is useful just forunderstanding the data before building a separateforecasting model.

Forecasting using R Forecasting and decomposition 24

Page 27: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Seas adj elec equipment

80

90

100

110

120

2000 2005 2010New orders index

y

level

80

95

Naive forecasts of seasonally adjusted data

Forecasting using R Forecasting and decomposition 25

Page 28: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Seas adj elec equipment

60

80

100

120

2000 2005 2010Time

New

ord

ers

inde

x

level

80

95

Forecasts from STL + Random walk

Forecasting using R Forecasting and decomposition 26

Page 29: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

How to do this in R

fit <- stl(elecequip, t.window=15,s.window="periodic", robust=TRUE)

eeadj <- seasadj(fit)autoplot(naive(eeadj, h=24)) +

ylab("New orders index")

fcast <- forecast(fit, method="naive", h=24)autoplot(fcast) +

ylab="New orders index")

Forecasting using R Forecasting and decomposition 27

Page 30: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Decomposition and prediction intervals

It is common to take the prediction intervals from theseasonally adjusted forecasts and modify them withthe seasonal component.This ignores the uncertainty in the seasonalcomponent estimate.It also ignores the uncertainty in the future seasonalpattern.

Forecasting using R Forecasting and decomposition 28

Page 31: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Some more R functions

fcast <- stlf(elecequip, method='naive')

fcast <- stlf(elecequip, method='naive',h=36, s.window=11, robust=TRUE)

Forecasting using R Forecasting and decomposition 29

Page 32: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Outline

1 Time series components

2 STL decomposition

3 Forecasting and decomposition

4 Lab session 5

Forecasting using R Lab session 5 30

Page 33: Forecasting using R - Rob J Hyndman · Outline 1Time series components 2STL decomposition 3Forecasting and decomposition 4Lab session 5 Forecasting using R Time series components

Lab Session 5

Forecasting using R Lab session 5 31