smooth forecasting in r - user! 2019 · introduction fast moving slow moving multiple seasons...

75
Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References Smooth forecasting in R Ivan Svetunkov useR! 11th July 2019 Marketing Analytics and Forecasting Ivan Svetunkov CMAF Smooth forecasting in R

Upload: others

Post on 04-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Smooth forecasting in R

Ivan Svetunkov

useR!

11th July 2019

Marketing Analyticsand Forecasting

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 2: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

What is “smooth”?

Page 3: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Introduction

Forecasting Using State Space Models.

Implements Single Source of Error state space models (Snyder,1985) for purposes of time series analysis and forecasting.

Motto of the package: give more flexibility to the user.

v2.5.1 on CRAN

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 4: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Introduction

Forecasting Using State Space Models.

Implements Single Source of Error state space models (Snyder,1985) for purposes of time series analysis and forecasting.

Motto of the package: give more flexibility to the user.

v2.5.1 on CRAN

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 5: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

But why?!

Let’s go back in time... to October 21, 2015.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 6: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

But why?!

Let’s go back in time... to October 21, 2015.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 7: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

But why?!

I was doing my PhD...

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 8: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

But why?!

I was doing my PhD... with ets() from forecast package(Hyndman et al., 2019)...

...when I realised that I’m missing some features:

• Multiple steps ahead loss functions;

• Explanatory variables;

• More flexibility in the initialisation of the model;

• ...

What to do?

Develop your own package with exponential smoothing!

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 9: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

But why?!

I was doing my PhD... with ets() from forecast package(Hyndman et al., 2019)...

...when I realised that I’m missing some features:

• Multiple steps ahead loss functions;

• Explanatory variables;

• More flexibility in the initialisation of the model;

• ...

What to do?

Develop your own package with exponential smoothing!

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 10: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

But why?!

I was doing my PhD... with ets() from forecast package(Hyndman et al., 2019)...

...when I realised that I’m missing some features:

• Multiple steps ahead loss functions;

• Explanatory variables;

• More flexibility in the initialisation of the model;

• ...

What to do?

Develop your own package with exponential smoothing!

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 11: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

But why?!

I was doing my PhD... with ets() from forecast package(Hyndman et al., 2019)...

...when I realised that I’m missing some features:

• Multiple steps ahead loss functions;

• Explanatory variables;

• More flexibility in the initialisation of the model;

• ...

What to do?

Develop your own package with exponential smoothing!

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 12: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Introduction

Functions included in the package in 2019:

• Exponential smoothing in ETS framework, es();

• Intermittent demand state space model, es(), oes();

• State space ARIMA, ssarima(), auto.ssarima();

• Multiple seasonal ARIMA, msarima(), auto.msarima();

• Vector Exponential Smoothing, ves();

• And others...

Not possible to cover everything, so let’s have several case studies.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 13: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Introduction

Functions included in the package in 2019:

• Exponential smoothing in ETS framework, es();

• Intermittent demand state space model, es(), oes();

• State space ARIMA, ssarima(), auto.ssarima();

• Multiple seasonal ARIMA, msarima(), auto.msarima();

• Vector Exponential Smoothing, ves();

• And others...

Not possible to cover everything, so let’s have several case studies.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 14: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Introduction

Functions included in the package in 2019:

• Exponential smoothing in ETS framework, es();

• Intermittent demand state space model, es(), oes();

• State space ARIMA, ssarima(), auto.ssarima();

• Multiple seasonal ARIMA, msarima(), auto.msarima();

• Vector Exponential Smoothing, ves();

• And others...

Not possible to cover everything, so let’s have several case studies.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 15: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Introduction

Functions included in the package in 2019:

• Exponential smoothing in ETS framework, es();

• Intermittent demand state space model, es(), oes();

• State space ARIMA, ssarima(), auto.ssarima();

• Multiple seasonal ARIMA, msarima(), auto.msarima();

• Vector Exponential Smoothing, ves();

• And others...

Not possible to cover everything, so let’s have several case studies.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 16: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

IntroductionSome posts about the features of the es() function (exerts fromhttps://forecasting.svetunkov.ru):

• Model types, model selection and combinations:http://tiny.cc/emxc9y, http://tiny.cc/znxc9y andhttp://tiny.cc/2oxc9y;

• Tuning the parameters of the model:http://tiny.cc/lqxc9y;

• Explanatory variables: http://tiny.cc/5uxc9y andhttp://tiny.cc/wwxc9y;

• Estimation of the model: http://tiny.cc/xsxc9y andhttp://tiny.cc/jtxc9y;

• Prediction intervals: http://tiny.cc/juxc9y;

• Intermittent demand: http://tiny.cc/w2xc9y.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 17: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Demand on fast moving products

Demand on fast moving products

Page 18: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

Sales of beer...

Time

Sal

es

2015.0 2016.0 2017.0 2018.0

1000

2500

4000

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 19: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

With some promotions...

Time

Sal

es

2015.0 2016.0 2017.0 2018.0

1000

2500

4000

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 20: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products salesAnd prices for the product and its competitors...

●●●●●●●●●●

●●●●●

●●●

●●

●●●

●●●

●●

●●●

●●

●●●

●●

●●

●●●●●●

●●●

●●

●●

●●●

●●●

●●

●●

●●

●●

●●●●

●●●●

●●●●●

●●

●●●

●●●

●●

●●

●●●

●●

●●

●●

●●

●●

●●

data[[i]]

Sales

1000

3000

● ●●●●●●●●●●● ● ●●

●●●●●● ●● ●● ● ●● ●

●● ● ●●● ●●

●●●●●● ●● ●● ●●

●●●●●● ●●●●●

●●●●● ●●● ●●● ●●●●

● ●● ● ●●●●● ●●● ●● ●

●●● ● ●● ●● ●●●●● ●●

●●●●●●●●●●●● ●●●●●●●● ●

●●● ●●●● ●● ●● ●●●●

●● ● ●● ● ●● ●

● ●● ● ●●

data[[i]]

5.5

7.0

● ●●●●●●●●●●● ● ●●

●●●●●● ●●

● ●

●● ●

●● ● ●●● ●●

●●●●●● ●●

● ●●

●●●

●●● ●●●●●

●●●●● ●●● ●●● ●●●●

● ●●

●●●●● ●●● ●● ●

●● ●

●● ●● ●●●●● ●

●●●●●●●●●●●● ●●●●●●●● ●

●●● ●

●●● ●● ●● ●●●●

●●

●● ● ●● ●

● ●●

●●

data[[i]]

0.8

1.2

Sales

5.88

6.81

Sales

01

●●●● ●● ●

Sales

01

●● ●●●

01

1000 3000

●●●●●●●●●●

●●●●●

●●●

●●●●●●

●●

●●●●● ●

●●●●

●●●●●

●●

●●●

●●●● ●●●●●

●●●

●●

●●●

●●●●

●●

●●●

●●

●●

●●●●●●

● ●●●●●●●●●●●●

●●●●●●●●● ●

●●●●●●

●●

●●●●

●●●●●

●●●

●●●

data[[i]]da

ta[[j

]]

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●

●●●●●●●●

●●●●●●●●●●●●

●●●●●●●●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●

●●●●●●

data[[i]]

data

[[i]]

Price1

●●●●●●●●●●●●●●●●●●●●●●●

●●

●●●

●●●●●●●●

●●●●●●●●

●●●●●●

●●●●●●●●

●●●●●●●●●●●●●●●

●●●

●●●●●●●●●●●●

●●●

●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●

●●●

●●

data[[i]]

data

[[j]]

●●

Price1

Pric

e3

●●●●●

Price1

Pro

mo1

●●●●●●

Price1

Pro

mo2

●●●●●●●●●●●●Pro

mo3

5.5 7.0

●●●●●●●●●●

●●● ●●

●●●

●●●

●●●

●●

●●●●● ●

●●●●

●●●●●

●●

●●●

●●●●●●●●●

●●●

●●

●●●

●●●●

●●

●●●

● ●

●●

●●●●●●

●●●●●●●●●●●●●

●●●●●●●●●●

●●● ●

●●

●●

●●●●

●●

●●●

●●●

●●●

data[[i]]

data

[[j]]

●●●●●●●●●●●●●●●

●●●●●●●● ●●●●●●

●●●●●●●●

●●●●●●●● ●●●●

●●● ●●●●●●●●

●●●●●●●●●●●●●●●

●●●●●●●●●●●●●●●

● ●●●●●●●●●●●●● ●

●●●●●●●●●●●●●●●●●●●●●

●●●● ●●●●●●●●●●●

●● ●●●●●●●

●●● ●●●

data[[i]]da

ta[[j

]]

●●●●●●●●●●●●●●●●●●●●●●●

●●

●●●

●●●●●●●●

●●●●●●●●

●●●●●●

●●●●●●●●

●●●●●●●●●●●●●●●

●●●

●●●●●●●●●●●●

●●●

●●●●●●●●●●

●●●●●●●●●●●●●●●●●●●●●●●●●

●●●●●●●●●●●●●

●●●●●●

●●●

●●

data[[i]]

data

[[i]]

Price2

●●

Price2

Pric

e3

●●●●●●●● ●●●●●●

Price2

Pro

mo1

●●●●●●●● ●●●●●●

Price2

Pro

mo2

●●●●●●●● ●●●●●●●Pro

mo3

0.8 1.2

●●

Price3

Sal

es

●●

● ●●

●●

●●

Price3

Pric

e1

●●

●●

Price3P

rice2

●●

● ● ● ●

0

0 Price3

data[[i]]

data

[[j]]

data[[i]]

data

[[j]]

data

[[j]]

5.88 6.81

Promo1

Sal

es

●●●●●

Promo1

Pric

e1 ●

●●●●●●●●

●●

●●●●

Promo1

Pric

e2

● ●

data[[i]]da

ta[[j

]]

0

0 Promo1

data[[i]]

data

[[j]]

data

[[j]]

0 1

●●●

Promo2

Sal

es

●●●●

●●

Promo2

Pric

e1 ● ●

●●●●●●●●

●●●

●●●

Promo2

Pric

e2

●●

data[[i]]

data

[[j]]

data[[i]]da

ta[[j

]]●

0

0 Promo2

data

[[j]]

0 1

●●

●●

Promo3

Sal

es

●●

●●●●●●●

●●●●●

Promo3

Pric

e1 ●

●●●●●●●●

●●●

●●●●

Promo3

Pric

e2

●●

data[[i]]

data

[[j]]

data[[i]]

data

[[j]]

data[[i]]

data

[[j]]

0 Promo3

0 1

spread() function from greybox.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 21: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

We start with a seasonal exponential smoothing, ETS(MNM)model:

es(Sales, model="MNM", initial="backcasting",

h=13, holdout=TRUE, interval="parametric", silent=FALSE)

Data is weekly, so estimating 52 seasonal indices might be difficult.

That’s why we have initial="backcasting".

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 22: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

We start with a seasonal exponential smoothing, ETS(MNM)model:

es(Sales, model="MNM", initial="backcasting",

h=13, holdout=TRUE, interval="parametric", silent=FALSE)

Data is weekly, so estimating 52 seasonal indices might be difficult.

That’s why we have initial="backcasting".

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 23: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

The output:

Time elapsed: 0.26 seconds

Model estimated: ETS(MNM)

Persistence vector g:

alpha gamma

0.2147 0.1366

Initial values were produced using backcasting.

Loss function type: MSE; Loss function value: 0.0273

Information criteria:

AIC AICc BIC BICc

2096.188 2096.361 2105.077 2105.505

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 24: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

...continued:

Error standard deviation: 0.1651

Sample size: 143

Number of estimated parameters: 3

Number of degrees of freedom: 140

95% parametric prediction interval were constructed

62% of values are in the prediction interval

Forecast errors:

MPE: 26.2%; sCE: -419.6%; Bias: 94.5%; MAPE: 28.2%

MASE: 1.792; sMAE: 33.6%; sMSE: 17.5%; RelMAE: 0.743; RelRMSE: 0.784

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 25: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products salesThe forecast...

●SeriesFitted values

Point forecast95% prediction interval

Forecast origin

ETS(MNM)

2015.0 2015.5 2016.0 2016.5 2017.0 2017.5 2018.0

1000

3000

...is not good.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 26: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

Let’s introduce the explanatory variables:

es(Sales, model="MNM", initial="backcasting", xreg=PromoData,

h=13, holdout=TRUE, interval="parametric", silent=FALSE)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 27: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

The important chunks from the output:

Model estimated: ETSX(MNM)

Information criteria:

AIC AICc BIC BICc

2046.693 2048.046 2073.358 2076.717

77% of values are in the prediction interval

Forecast errors:

MPE: -5.2%; sCE: 57.3%; Bias: -33.9%; MAPE: 14%

MASE: 0.763; sMAE: 14.3%; sMSE: 3.3%; RelMAE: 0.316; RelRMSE: 0.34

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 28: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

●SeriesFitted values

Point forecast95% prediction interval

Forecast origin

ETSX(MNM)

2015.0 2015.5 2016.0 2016.5 2017.0 2017.5 2018.0

1000

3000

5000

Much better now!

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 29: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

Do variables selection inside the function, to remove redundantvariables:

es(Sales, model="MNM", initial="backcasting", xreg=PromoData,

xregDo="select",

h=13, holdout=TRUE, interval="parametric", silent=FALSE)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 30: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

The important parts:

Information criteria:

AIC AICc BIC BICc

2047.095 2047.925 2067.835 2069.894

92% of values are in the prediction interval

Forecast errors:

MPE: 0.5%; sCE: -26.5%; Bias: 6.4%; MAPE: 12.6%

MASE: 0.733; sMAE: 13.8%; sMSE: 3.1%; RelMAE: 0.304; RelRMSE: 0.332

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 31: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

●SeriesFitted values

Point forecast95% prediction interval

Forecast origin

ETSX(MNM)

2015.0 2015.5 2016.0 2016.5 2017.0 2017.5 2018.0

1000

3000

5000

Perfect!

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 32: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

We could have done the same stuff automatically withmodel="YYY":

es(Sales, model="YYY", initial="backcasting", xreg=PromoData,

xregDo="select",

h=13, holdout=TRUE, interval="parametric", silent=FALSE)

Potential improvement: include lead and lag effects of promotions.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 33: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Fast moving products sales

We could have done the same stuff automatically withmodel="YYY":

es(Sales, model="YYY", initial="backcasting", xreg=PromoData,

xregDo="select",

h=13, holdout=TRUE, interval="parametric", silent=FALSE)

Potential improvement: include lead and lag effects of promotions.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 34: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Slow moving products sales

Demand on slow moving products

Page 35: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

Demand becoming obsolete + promotions:

Time

Sal

es

0 20 40 60 80 100

02

46

8

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 36: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

Start from smaller – Inverse odds ratio iETS model:

es(x, model="MNN", occurrence="inverse-odds-ratio",

h=20, holdout=TRUE, interval="parametric", silent=FALSE)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 37: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products salesThe important parts of the output:

Model estimated: iETS(MNN)

Occurrence model type: Inverse odds ratio

alpha

0.2039

Information criteria:

AIC AICc BIC BICc

368.2378 368.5536 380.1479 372.0758

95% parametric prediction interval were constructed

100% of values are in the prediction interval

Forecast errors:

Bias: -79.6%; sMSE: 4%; RelRMSE: 1.097; sPIS: 2185%; sCE: 193.4%

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 38: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

●SeriesFitted values

Point forecast95% prediction interval

Forecast origin

0 20 40 60 80 100

02

46

810

iETS(MNN)[I](MNN)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 39: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

Use trend and explanatory variables:

es(x, model="MMN", occurrence="inverse-odds-ratio", xreg=z,

h=20, holdout=TRUE, interval="parametric", silent=FALSE)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 40: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

The important parts of the output:

Model estimated: iETSX(MMN)

alpha beta

0.0065 0.0065

Information criteria:

AIC AICc BIC BICc

313.5728 314.7235 332.6291 326.3862

Forecast errors:

Bias: -70.3%; sMSE: 1.8%; RelRMSE: 0.737; sPIS: 706.8%; sCE: 58.5%

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 41: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

●SeriesFitted values

Point forecast95% prediction interval

Forecast origin

0 20 40 60 80 100

02

46

810

iETSX(MMN)[I](MNN)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 42: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

Use oes() function in order to model the probability of occurrence.

Include multiplicative trend and the explanatory variable:

oesModel <- oes(x, model="MMN", occurrence="inverse-odds-ratio",

xreg=z,

h=20, holdout=TRUE, silent=FALSE)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 43: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

Use oes() function in order to model the probability of occurrence.

Include multiplicative trend and the explanatory variable:

oesModel <- oes(x, model="MMN", occurrence="inverse-odds-ratio",

xreg=z,

h=20, holdout=TRUE, silent=FALSE)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 44: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

●SeriesFitted values

Point forecastForecast origin

0 20 40 60 80 100

0.0

0.2

0.4

0.6

0.8

1.0

oETSX[I](MMN)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 45: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

Finally use it in the es():

es(x, model="MMN", occurrence=oesModel, xreg=z,

h=20, holdout=TRUE, interval="parametric", silent=FALSE)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 46: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

The important lines of the output:

alpha beta

0.0065 0.0065

Information criteria:

AIC AICc BIC BICc

303.3652 304.5159 317.6574 320.1786

Forecast errors:

Bias: -84.7%; sMSE: 0.6%; RelRMSE: 0.438; sPIS: 679.5%; sCE: 66.4%

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 47: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

●SeriesFitted values

Point forecast95% prediction interval

Forecast origin

0 20 40 60 80 100

02

46

810

iETSX(MMN)[I](MMN)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 48: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

Paper on iETS is under review at IJF.

Have a look at the working paper, if you want (Svetunkov andBoylan, 2017).

See vignette("oes","smooth") for more recent information.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 49: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Slow moving products sales

Paper on iETS is under review at IJF.

Have a look at the working paper, if you want (Svetunkov andBoylan, 2017).

See vignette("oes","smooth") for more recent information.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 50: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Multiple seasonalities

Demand with multiple seasonalities

Page 51: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

msarima() stands for “Multiple Seasonal ARIMA”.

Flexibility of msarima():

• Any orders you want, regulated byorder=list(ar=c(3,2,1), i=c(1,0,0), ma=c(1,2,3));

• Any lags you want, regulated by lags=c(1,48,7*48).

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 52: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

msarima() stands for “Multiple Seasonal ARIMA”.

Flexibility of msarima():

• Any orders you want, regulated byorder=list(ar=c(3,2,1), i=c(1,0,0), ma=c(1,2,3));

• Any lags you want, regulated by lags=c(1,48,7*48).

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 53: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

Half-hourly electricity demand example (taylor from forecast).

Time

fore

cast

::tay

lor

2 4 6 8 10 12

2000

030

000

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 54: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

Select the most suitable SARIMA model and produce forecasts:

auto.msarima(forecast::taylor,

orders=list(ar=c(3,2,2),i=c(2,1,1),ma=c(3,2,2)),

lags=c(1,48,48*7), h=48*7, holdout=TRUE,

silent=FALSE)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 55: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

Time elapsed: 2125.07 seconds

Model estimated: SARIMA(0,1,3)[1](2,0,0)[48](2,1,0)[336]

Matrix of AR terms:

Lag 48 Lag 336

AR(1) 0.394 -0.683

AR(2) 0.242 -0.403

Matrix of MA terms:

Lag 1

MA(1) 0.062

MA(2) -0.041

MA(3) -0.073

Initial values were produced using backcasting.

8 parameters were estimated in the process

Residuals standard deviation: 147.774

Loss function type: MSE; Loss function value: 21837.251

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 56: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

...output continued...Information criteria:

AIC AICc BIC BICc

47432.91 47432.95 47482.63 47482.79

Forecast errors:

MPE: 2.4%; sCE: -830.9%; Bias: 90.7%; MAPE: 2.7%

MASE: 1.254; sMAE: 2.8%; sMSE: 0.1%; RelMAE: 0.122; RelRMSE: 0.115

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 57: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

SeriesFitted values

Point forecastForecast origin

SARIMA(0,1,3)[1](2,0,0)[48](2,1,0)[336]

2 4 6 8 10 12

2000

025

000

3000

035

000

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 58: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

Alternatives from smooth to consider:

• Deterministic seasonality for half-hours (dummies);

• Deterministic seasonality for days of week;

• Do that with es(), msarima() or gum();

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 59: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

Alternatives from smooth to consider:

• Deterministic seasonality for half-hours (dummies);

• Deterministic seasonality for days of week;

• Do that with es(), msarima() or gum();

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 60: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

es() with deterministic daily seasonality.

taylorDummies contains the dummies for days of week...

test <- es(taylor, model="MNM", xreg=taylorDummies,

h=48*7, holdout=T, silent=F)

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 61: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multiple seasonalities

●SeriesFitted values

Point forecastForecast origin

ETSX(MNM)

2 4 6 8 10 12

2000

030

000

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 62: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Multivariate data

Multivariate models

Page 63: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multivariate data

Two products from the same category:0e

+00

6e+

04

Ser

ies1

020

000

2 4 6 8 10

Ser

ies2

Time

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 64: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multivariate data

Apply vector exponential smoothing (ves() function, seevignettes):

ves(Y$data, model="MMM",

persistence="common", initialSeason="common", seasonal="common",

h=12, holdout=TRUE, silent=FALSE, interval="individual")

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 65: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multivariate data

VES(MMM)[CCAC] Series1

Time

Y

2 4 6 8 10

060

000

VES(MMM)[CCAC] Series2

Time

Y

2 4 6 8 10

020

000

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 66: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

Multivariate data

This is based on the research with Huijing Chen and John E.Boylan.

This was presented at ISF2019 by John E. Boylan.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 67: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

What else?

Page 68: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

What is left behind?

Some other functions and models implemented in the package:

• Complex exponential smoothing (Svetunkov and Kourentzes,2018), ces() and auto.ces();

• State space model constructor, gum();

• Simple and centred moving averages in state space form(Svetunkov and Petropoulos, 2018): sma() and cma();

• Simulation functions (ETS, ARIMA, VES, SMA, CES, GUM).

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 69: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

What is left behind?

Some other functions and models implemented in the package:

• Complex exponential smoothing (Svetunkov and Kourentzes,2018), ces() and auto.ces();

• State space model constructor, gum();

• Simple and centred moving averages in state space form(Svetunkov and Petropoulos, 2018): sma() and cma();

• Simulation functions (ETS, ARIMA, VES, SMA, CES, GUM).

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 70: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

What is left behind?

Some other functions and models implemented in the package:

• Complex exponential smoothing (Svetunkov and Kourentzes,2018), ces() and auto.ces();

• State space model constructor, gum();

• Simple and centred moving averages in state space form(Svetunkov and Petropoulos, 2018): sma() and cma();

• Simulation functions (ETS, ARIMA, VES, SMA, CES, GUM).

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 71: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

What is left behind?

Some other functions and models implemented in the package:

• Complex exponential smoothing (Svetunkov and Kourentzes,2018), ces() and auto.ces();

• State space model constructor, gum();

• Simple and centred moving averages in state space form(Svetunkov and Petropoulos, 2018): sma() and cma();

• Simulation functions (ETS, ARIMA, VES, SMA, CES, GUM).

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 72: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Finale

Page 73: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Thank you for your attention!

Ivan Svetunkov

[email protected]

https://forecasting.svetunkov.ru

twitter: @iSvetunkov

Marketing Analyticsand Forecasting

Page 74: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

References I

Hyndman, R., Athanasopoulos, G., Bergmeir, C., Caceres, G.,Chhay, L., O’Hara-Wild, M., Petropoulos, F., Razbash, S.,Wang, E., Yasmeen, F., 2019. forecast: Forecasting functions fortime series and linear models. R package version 8.7.URL http://pkg.robjhyndman.com/forecast

Snyder, R. D., 1985. Recursive Estimation of Dynamic LinearModels. Journal of the Royal Statistical Society, Series B(Methodological) 47 (2), 272–276.

Svetunkov, I., Boylan, J. E., 2017. Multiplicative State-SpaceModels for Intermittent Time Series.

Svetunkov, I., Kourentzes, N., 2018. Complex ExponentialSmoothing for Seasonal Time Series.

Ivan Svetunkov CMAF

Smooth forecasting in R

Page 75: Smooth forecasting in R - useR! 2019 · Introduction Fast moving Slow moving Multiple seasons Multivariate Other FinaleReferences Fast moving products sales We start with a seasonal

Introduction Fast moving Slow moving Multiple seasons Multivariate Other Finale References

References IISvetunkov, I., Petropoulos, F., sep 2018. Old dog, new tricks: a

modelling view of simple moving averages. International Journalof Production Research 56 (18), 6034–6047.URL https://www.tandfonline.com/doi/full/10.1080/

00207543.2017.1380326

Ivan Svetunkov CMAF

Smooth forecasting in R