Time Series Forecasting Business Report-1
Time Series Forecasting Business Report-1
Time Series Forecasting Business Report-1
Project Report
Page. 1
INTRODUCTION
This report consists of Time Series analysis and forecasting of 2 datasets -
Both of these data are from the same company but of different wines. As an analyst in the ABC
Estate Wines, you are tasked to analyse and forecast Wine Sales in the 20th century.
SYNOPSIS
1. Total No. Of Rose Data Entries = 187
4. Both datasets are split in Train : Test at year 1991 - Test data starts at 1991
1. Linear Regression
2. Naive Bayes
3. Simple Average
4. 2-pt Moving Average
Time Series Project
[ Q 1 ] Read the data as an appropriate Time Series data and plot the data.
• Both Datasets are read and stored as Pandas Data Frames for analysis
1070.
Sparkling 187.0 2402.417 1295.112 1605.0 1874.0 2549.0 7242.0
0
Descriptive Stats of Rose and Sparkling datasets
<class 'pandas.core.frame.DataFrame'> • Month-wise Boxplot of Rose -
DatetimeIndex: 187 entries,
• Sales of both - Rose and Sparkling, show a spike in the last quarter of Oct to Dec
Additive
1980-02-01 Decomposition of 1980-02-01
Rose - -17.44 1980-02-01
• Additive Models -
• Multiplicative Models -
• Here by just observing the Residual patterns of Additive and Multiplicative models of Rose
and Sparkling datasets. It seems that -
• Rose is Multiplicative
• Sparkling is Additive
[ Q 3 ] Split the data into training and test. The test data should start in 1991.
• Both datasets of Rose and Sparkling are split at the year 1991
YearMonth Rose
1995-03-01 45.00
1995-04-01 52.00
1995-05-01 28.00
1995-06-01 40.00
1995-07-01 62.00
1980-05-01 1471.00
Sparkling Train - First 5
YearMonth Sparkling
1991-01-01 1902.00
1991-02-01 2049.00
1991-03-01 1874.00
1991-04-01 1279.00
1991-05-01 1432.00
YearMonth Sparkling
1990-08-01 1605.00
1990-09-01 2424.00
1990-10-01 3116.00
1990-11-01 4286.00
1990-12-01 6047.00
Sparkling Train - Last 5
YearMonth Sparkling
1995-03-01 1897.00
1995-04-01 1862.00
1995-05-01 1670.00
1995-06-01 1688.00
1995-07-01 2031.00
2pointTrailingMovingAverage 11.53
4pointTrailingMovingAverage 14.45
6pointTrailingMovingAverage 14.57
9pointTrailingMovingAverage 14.73
2pointTrailingMovingAverage 813.40
4pointTrailingMovingAverage 1156.59
6pointTrailingMovingAverage 1283.93
9pointTrailingMovingAverage 1346.28
NOTE -
• We have built 4 models till now for both Rose and Sparkling Wine datasets
• We fitted various models to the Train split and Tested it on Test split. Accuracy metrics used is
Root Mean Squared Error (RMSE) on Test data
• We regressed variables ‘Rose’ and ‘Sparkling’ against their individual time instances
• We modified the datasets and tagged individual sales to their time instances
(
• Model 3 - Simple Average yt̂+1 = yt̂+2 = ... = yt̂+n = Mean(y1,y2,...,yt))
• All future predictions are the same as the simple average of all data till today
• We calculate rolling means (Moving averages) over different intervals for the whole train data
• 4 Pt MA ====> means, we find average of 1st, 2nd, 3rd & 4th to predict 5th
also, average of 2nd, 3rd, 4th & 5th to predict 6th and so on
• 2 PT MA ====>
• 4 PT MA ====>
• 6 PT MA ====>
• 9 PT MA ====>
• Till now, Best Model which gives lowest RMSE score for both Rose and Sparkling is ——> 2 Pt
Moving Average Model
• We’ll continue to forecast using Exponential Smoothing Models for both datasets of Rose and
Sparkling Wine Sales
• Exponential smoothing methods consist of special case exponential moving with notation
ETS (Error, Trend, Seasonality) where each can be None(N), Additive (N), Additive damped
(Ad), Multiplicative (M) or Multiplicative damped (Md)
• One or more parameters control how fast the weights decay. The values of the parameters lie
between 0 and 1
• Triple Exponential Smoothing with Additive Errors, Additive Trends, Additive Seasonality -
ETS(A, A, A)
• Triple Exponential Smoothing with Additive Errors, Additive Trends, Multiplicative Seasonality
- ETS(A, A, M)
• Triple Exponential Smoothing with Additive Errors, Additive DAMPED Trends, Additive
Seasonality - ETS(A, Ad, A)
• Triple Exponential Smoothing with Additive Errors, Additive DAMPED Trends, Multiplicative
Seasonality - ETS(A, Ad, M)
Single Exponential Smoothing with Additive Errors - ETS(A, N, N)
• Best Model till now for Rose and Sparkling ——- > 2 Pt Moving Average Model
• In Rose - DES has picked up the trend well. DES seems to perform better than SES here
• In Sparkling - DES shows a non-existent trend. DES does not perform well here
• Best Model till now for Rose and Sparkling ——- > 2 Pt Moving Average Model
Triple Exponential Smoothing with Additive Errors, Additive Trends, Additive Seasonality -
ETS(A, A, A)
• In Rose & Sparkling - TES has picked up the trend and seasonality very well
[ Q 5 ] Check for the stationarity of the data on which the model is being built on
using appropriate statistical tests and also mention the hypothesis for the
statistical test.
Check the new data for stationarity and comment. Note: Stationarity should be
checked at alpha = 0.05.
• We use Augmented Dicky - Fuller (ADF) Test to check the Stationarity of Data
• So for Industry standard (also given for this problem), the Confidence Interval is 95%
• So in ADF Test, if p-value < alpha ===> We reject the Null Hypothesis and hence
conclude that given Time Series is
Stationary
• So in ADF Test, if p-value > alpha ===> We fail to reject the Null Hypothesis and
hence conclude that given Time Series is
Not Stationary
• If Time Series is not Stationary then we apply one level of differencing and check for
Stationarity again.
• Again, if the Time Series is still not Stationary, we apply one more level of differencing and
check for Stationarity again
• Once the Time Series is Stationary then we are ready to apply ARIMA / SARIMA models
• We fail to reject the Null Hypothesis and hence conclude that Rose Wine Time Series is Not
Stationary
• Now, we reject the Null Hypothesis and conclude that Rose Time Series is Stationary with a
lag of 1
•
• Here, p-value > alpha=0.05
We fail to reject the Null Hypothesis and hence conclude that Sparkling Wine Time Series is
Not Stationary
• Now, we reject the Null Hypothesis and conclude that Sparkling Time Series is Stationary
with a lag of 1
•
ARIMA / SARIMA are forecasting models on Stationary Time Series
• We check for stationarity of Train Rose & Sparkling data by using Augmented Dicky Fuller
Test
1. ARIMA Automated
2. SARIMA Automated
1. ARIMA Automated -
• We choose the combination with the least Akaike Information Criteria (AIC)
• We fit ARIMA to this combination of (p, d, q) to the Train set and forecast on the Test set
• Finally, we check the accuracy of this model by checking RMSE of Test set
•
ARIMA(2,1,3) 36.81 75.84
For Rose, Best Combination with Least AIC is - (p, d, q) —-> (2, 1, 3)
•
ARIMA(2,1,2) 1299.98 47.10
For Sparkling, Best Combination with Least AIC is - (p, d, q) —-> (2, 1, 2)
• We fit SARIMA models to each of these combinations and select with least AIC
• We fit SARIMA to this best combination of (p, d, q) (P, D, Q, m) to the Train set and forecast
on the Test set. Then, we check accuracy using RMSE on Test set
• For Rose, Best Combination with Least AIC is - (3, 1, 1) (3, 0, 2, 12)
• For Sparkling, Best Combination with low AIC and low Test RMSE is - (3, 1, 1) (3, 0,
0, 12)
• Till Now, Best Model for Sparkling with Least RMSE ->SARIMA (3, 1, 1) (3, 0, 0, 12)
[ Q 7 ] Build ARIMA/SARIMA models based on the cut-off points of ACF and PACF
on the training data and evaluate this model on the test data using RMSE.
• Autocorrelation refers to how correlated a time series is with its past values. e.g. yt with yt−1
• ‘Auto’ part of Autocorrelation refers to Correlation of any time instance with its previous time
instance in the SAME Time Series
• ACF is the plot used to see the correlation between the points, up to and including the lag
unit
• Partial Autocorrelation refers to how correlated a time series is with its past lag values.
• For example, let lag=k, then Partial Autocorrelation is Correlation of yt with yt−k, ignoring the
• PACF is the plot used to see the correlation between the lag points
• PACF indicates the value of ‘p’ - which is the Auto-Regressive parameter in ARIMA / SARIMA
models
• Observing the cutoffs in ACF and PACF plots for Rose dataset, we get -
• Observing the cutoffs in ACF and PACF plots for Sparkling dataset, we get - FOR
• In all Manual methods, Best Model for Rose with Least RMSE
• In all Manual methods, Best Model for Sparkling with Least RMSE
• Seasonal P and Q - it was difficult to gauge the correct values here as the data was not enough
and cutoffs were not visible
[ Q 8 ] Build a table (create a data frame) with all the models built along with their
corresponding parameters and the respective RMSE values on the test data.
2pointTrailingMovingAverage 11.53
α = 0.0849 β =
Triple Exponential Smoothing
(Additive Season)
5.52e−6 ≈ 0.00 γ = 14.24
0.00054
4pointTrailingMovingAverage 14.45
6pointTrailingMovingAverage 14.57
9pointTrailingMovingAverage 14.73
RegressionOnTime 15.27
α = 0.07736
Triple Exponential Smoothing
(Multiplicative Season)
β = 0.03936 19.11
γ = 0.00083
α = 0.05921
Triple Exponential Smoothing
(Multiplicative Season, Damped Trend)
β = 0.0205 γ 25.99
= 0.00405
α = 0.07842
Triple Exponential Smoothing
(Additive Season, Damped Trend)
β = 0.01153 26.04
γ = 0.07738
Simple Exponential Smoothing α = 0.09874 36.80
ARIMA(2,1,3) 36.81
ARIMA(2,1,2) 36.87
SimpleAverageModel 53.46
NaiveModel 79.72
Test RMSE
Model Parameters
Sparkling
α = 0.11107
Triple Exponential Smoothing
(Multiplicative Season, Damped Trend)
β = 0.03702 352.45
γ = 0.39507
α = 0.1112
Triple Exponential Smoothing
(Additive Season)
β = 0.01236 378.63
γ = 0.46071
α = 0.10062
Triple Exponential Smoothing
(Additive Season, Damped Trend)
β = 0.00018 378.63
γ = 0.51151
α = 0.11119
Triple Exponential Smoothing
(Multiplicative Season)
β = 0.04943 403.71
γ = 0.36205
SARIMA(3,1,1)(3,0,2,12) 601.24
2pointTrailingMovingAverage 813.40
4pointTrailingMovingAverage 1156.59
SARIMA(0,1,0)(3,1,2,12) 1189.84
SimpleAverageModel 1275.08
6pointTrailingMovingAverage 1283.93
ARIMA(2,1,2) 1299.98
9pointTrailingMovingAverage 1346.28
RegressionOnTime 1389.14
SARIMA(0,1,0)(3,1,2,12) 1551.65
SARIMA(0,1,0)(2,1,2,12) 1757.73
NaiveModel 3864.28
ARIMA(0,1,0) 3864.28
α = 0.665 β
Double Exponential Smoothing 5291.88
= 0.0001
• Best Model as per the Least RMSE on SPARKLING Test set ——>
• Hence, forecasting on the second best model - Triple Exponential Smoothing ETS(A, A, A) -
Additive Seasonality
Forecast
1995-08-01 42.50
1995-10-01 44.63
1995-11-01 45.69
1995-12-01 45.16
1996-01-01 45.42
1996-02-01 45.29
1996-03-01 45.36
1996-04-01 45.32
1996-05-01 45.34
1996-06-01 45.33
1996-07-01 45.33
Rose Forecast Values - Next 12 Months - 2 Pt Moving Average
Forecast
1995-08-01 50.02
1995-09-01 46.50
1995-10-01 45.94
1995-11-01 60.72
1995-12-01 97.66
1996-02-01 24.29
1996-03-01 31.91
1996-04-01 24.73
1996-05-01 28.12
1996-06-01 33.56
1996-07-01 44.09
Rose Forecast Values - Next 12 Months - TES - ETS(A, A, A)
Forecast
1995-08-01 1931.44
1995-09-01 2351.98
1995-10-01 3179.46
1995-11-01 3918.07
1995-12-01 5985.90
1996-01-01 1357.57
1996-02-01 1599.15
1996-03-01 1830.31
1996-04-01 1791.02
1996-06-01 1556.37
1996-07-01 1966.00
Sparkling Forecast Values - Next 12 Months -
TES - ETS(A, Ad, M)
[ Q 10 ] Comment on the model thus built and report your findings and
suggest the measures that the company should be taking for future sales.
• Also, there is a clear spike in sales seen in the last quarter of every year from Oct to Dec
• There is also an instant crashing slump in sales in the first quarter of every year from Jan
•
Sales slowly pick up only after May-June
• Top 2 best models as per lowest Test RMSE were found to be - 2 Pt Moving Average and
Holt-Winters - Additive Seasonality & Trend
• 2 Pt Moving Average model, when used for forecasting do not seem to give good
predictions. Forecast values level out after a few iterations
• Firstly, Holiday season is around the corner and forecast shows increasing sales and sharp
peak in Dec. Hence, Company should stock up
• But Declining sales of Rose Wine over the long period should be investigated with more
data crunching
•
Company should take advantage of the oncoming spike from Aug-Oct by introducing
aggressive offers and Ad campaigns.
• This will entice first time Wine drinkers and fence sitters (who don’t have specific loyalties
to any particular brand)
• Still if there is no significant upward trend in sales by this Dec, then Company has 2 options
- invest in R&D or think of discontinuing this variant and come up with something
completely new
• Sparkling wine sales don’t show any upward or downward trend - This
• Also, there is very high spike in sales seen in the last quarter of every year from Oct to Dec
•
Similar to Rose Wine, even in Sparkling sales, an instant crashing slump is seen in the first
quarter of every year from Jan
- This might be due to the after effect or hangover of Holidays
• There has been incremental improvements in Test RMSE with each tuning of parameters
• Finally, for forecast of Sparkling Wine Sales - we choose Holt-Winters with Multiplicative
Seasonality and Additive Damped Trend
• Even for Sparkling, Holiday season is around the corner and forecast shows increasing sales
and sharp peak in Dec. Hence, Company should stock up
• So no need to introduce any offers here but hammering Ads are suggested in these times
of Oct-Dec. This will drive sales even further.
• Sparkling wines are generally associated with celebrations and mainly to burst open.
• A special designer bottle can be introduced at a cheaper price just for bursting. This will
maximise profits
• Though, Holiday spikes are extreme, but general Year on Year sales need to be investigated
more. Early period from Jan should be used to do this deep dive