Business Forecasting Midterm Exam

Namita Kadam | RUID - 174004689 | NetID - njk45

2017-03-23

About the Dataset:

Federal Reserve releases weekly data on initial jobless claims. See http://www.investopedia.com/university/releases/joblessclaims.asp for more information. Since weekly numbers can be volatile, the series you see here is a monthly average of this data without any adjustment for seasonality. We will work with this dataset to understand strength of our economy in the short term.


Import Data:

library(readr)
## Warning: package 'readr' was built under R version 3.3.3
library(lattice)
library(TTR)
library(fpp)
## Loading required package: forecast
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: timeDate
## This is forecast 7.3
## Loading required package: fma
## Loading required package: tseries
## Loading required package: expsmooth
## Loading required package: lmtest
ICNSA <- read_csv("D:/BF/MIDTERM/ICNSA.csv")
## Parsed with column specification:
## cols(
##   `<U+FEFF>DATE` = col_character(),
##   Jobless_Claims = col_integer()
## )
jclaim <- ICNSA$Jobless_Claims
jclaim_ts <- ts(jclaim,start=c(2012,3),frequency = 12)

Plot and Inference

plot(jclaim_ts, ylab="Jobless Claims", type="o", pch =20)


Central Tendency

summary(jclaim_ts)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  203800  254500  307600  307800  341400  480600
hist(jclaim_ts)

#the default percentile values
quantile(jclaim_ts)
##       0%      25%      50%      75%     100% 
## 203778.0 254518.5 307581.5 341450.0 480600.0
cycle(jclaim_ts)
##      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
## 2012           3   4   5   6   7   8   9  10  11  12
## 2013   1   2   3   4   5   6   7   8   9  10  11  12
## 2014   1   2   3   4   5   6   7   8   9  10  11  12
## 2015   1   2   3   4   5   6   7   8   9  10  11  12
## 2016   1   2   3   4   5   6   7   8   9  10  11  12
## 2017   1   2

This will print the cycle across the years.

plot(aggregate(jclaim_ts,FUN=mean))

This will aggregate the cycles and display a year on year trend.

boxplot(jclaim_ts~cycle(jclaim_ts))

Box plot across the months will give us a sense on seasonal effect

a = boxplot(jclaim_ts, las =2, col = "royalblue2")

text(a$stats[3],"Median", pos = 4, offset = 8.5)
text(max(a$stats),"Max", pos = 4, offset = 8.5)
text(min(a$stats),"Min", pos = 4, offset = 8.5)
text(a$stats[2], "1st Quartile", pos = 4, offset = 8.5)
text(a$stats[4], "3rd Quartile", pos = 4, offset = 8.5)
text(a$out, "Outlier", pos = 4, offset = 8.5)


Decomposition

jclaim_stl <- stl(jclaim_ts, s.window ="periodic", robust = TRUE)
plot(jclaim_stl)

decomp_jclaim <- decompose(jclaim_ts, type = "additive")
decomp_jclaim$seasonal
##             Jan        Feb        Mar        Apr        May        Jun
## 2012                       -30435.025 -13106.150 -32574.879 -10730.025
## 2013 112678.673   4968.527 -30435.025 -13106.150 -32574.879 -10730.025
## 2014 112678.673   4968.527 -30435.025 -13106.150 -32574.879 -10730.025
## 2015 112678.673   4968.527 -30435.025 -13106.150 -32574.879 -10730.025
## 2016 112678.673   4968.527 -30435.025 -13106.150 -32574.879 -10730.025
## 2017 112678.673   4968.527                                            
##             Jul        Aug        Sep        Oct        Nov        Dec
## 2012   4945.485 -47763.431 -66988.786 -21560.431  15701.964  84864.079
## 2013   4945.485 -47763.431 -66988.786 -21560.431  15701.964  84864.079
## 2014   4945.485 -47763.431 -66988.786 -21560.431  15701.964  84864.079
## 2015   4945.485 -47763.431 -66988.786 -21560.431  15701.964  84864.079
## 2016   4945.485 -47763.431 -66988.786 -21560.431  15701.964  84864.079
## 2017
# the values of the seasonal monthly indices:
decomp_jclaim$figure
##  [1] -30435.025 -13106.150 -32574.879 -10730.025   4945.485 -47763.431
##  [7] -66988.786 -21560.431  15701.964  84864.079 112678.673   4968.527
#the seasonal effects values for all the months. We can see that the seasonal effect values are repeated each year (month-wise) in the $seasonal object from March onwards.
plot(decomp_jclaim$figure, main = "Seasonal Indices")

#month for which the value of time series is high: 
ICNSA[which.max(jclaim_ts),]
## # A tibble: 1 × 2
##   `<U+FEFF>DATE` Jobless_Claims
##            <chr>          <int>
## 1         1/1/13         480600
#month for which the value of time series is low: 
ICNSA[which.min(jclaim_ts),]
## # A tibble: 1 × 2
##   `<U+FEFF>DATE` Jobless_Claims
##            <chr>          <int>
## 1         9/1/16         203778
jclaim_ts_sa <- seasadj(jclaim_stl)
plot(jclaim_ts_sa)

plot(jclaim_ts)
lines(jclaim_ts_sa, col = "red")


Naïve Method

snaive_forecast <- snaive(jclaim_ts)
plot(snaive_forecast)

naive_forecast <- naive(jclaim_ts)
plot(naive_forecast)
lines(snaive_forecast$mean,col="black")

res <- residuals(naive_forecast)
fit <- fitted(naive_forecast)
act <- naive_forecast$x
plot(res, main="Residuals from forecasting the Jobless Claims with the Naïve method", 
     ylab="", xlab="Time")

2 Do a Histogram plot of residuals. What does the plot indicate?

hist(res, xlab = "Residuals", main="Histogram of Residuals from forecasting the Jobless Claims with the Naïve method")

xyplot(res~fit, pch=16, cex = 1.5, abline=0)

xyplot(res~act, pch = 16, cex = 1.5, abline = 0)

Acf(res, main="ACF of residuals of Naive Method")

accuracy_naive <- accuracy(naive_forecast)
accuracy_snaive <- accuracy(snaive_forecast)
accuracy_naive
##                     ME     RMSE     MAE       MPE     MAPE     MASE
## Training set -1592.983 48347.84 38382.2 -1.717081 12.62999 1.318645
##                   ACF1
## Training set 0.1247867
accuracy_snaive
##                     ME     RMSE      MAE       MPE     MAPE MASE      ACF1
## Training set -28805.27 32996.69 29107.31 -9.922908 10.04438    1 0.2031658
naive_forecast <- naive(jclaim_ts)
naive_forecast
##          Point Forecast    Lo 80    Hi 80  Lo 95  Hi 95
## Mar 2017         239438 177477.7 301398.3 144678 334198
## Apr 2017         239438 177477.7 301398.3 144678 334198
## May 2017         239438 177477.7 301398.3 144678 334198
## Jun 2017         239438 177477.7 301398.3 144678 334198
## Jul 2017         239438 177477.7 301398.3 144678 334198
## Aug 2017         239438 177477.7 301398.3 144678 334198
## Sep 2017         239438 177477.7 301398.3 144678 334198
## Oct 2017         239438 177477.7 301398.3 144678 334198
## Nov 2017         239438 177477.7 301398.3 144678 334198
## Dec 2017         239438 177477.7 301398.3 144678 334198
plot(naive_forecast)

snaive_forecast <- snaive(jclaim_ts,12)
snaive_forecast
##          Point Forecast  Lo 80  Hi 80    Lo 95    Hi 95
## Mar 2017         237779 195492 280066 173106.7 302451.3
## Apr 2017         249255 206968 291542 184582.7 313927.3
## May 2017         248658 206371 290945 183985.7 313330.3
## Jun 2017         252960 210673 295247 188287.7 317632.3
## Jul 2017         257056 214769 299343 192383.7 321728.3
## Aug 2017         220940 178653 263227 156267.7 285612.3
## Sep 2017         203778 161491 246065 139105.7 268450.3
## Oct 2017         231152 188865 273439 166479.7 295824.3
## Nov 2017         254985 212698 297272 190312.7 319657.3
## Dec 2017         333223 290936 375510 268550.7 397895.3
## Jan 2018         331347 289060 373634 266674.7 396019.3
## Feb 2018         239438 197151 281725 174765.7 304110.3
plot(snaive_forecast)

summary(naive_forecast)
## 
## Forecast method: Naive method
## 
## Model Information:
## $drift
## [1] 0
## 
## $drift.se
## [1] 0
## 
## $sd
## [1] 48736.38
## 
## $call
## naive(y = jclaim_ts)
## 
## 
## Error measures:
##                     ME     RMSE     MAE       MPE     MAPE     MASE
## Training set -1592.983 48347.84 38382.2 -1.717081 12.62999 1.318645
##                   ACF1
## Training set 0.1247867
## 
## Forecasts:
##          Point Forecast    Lo 80    Hi 80  Lo 95  Hi 95
## Mar 2017         239438 177477.7 301398.3 144678 334198
## Apr 2017         239438 177477.7 301398.3 144678 334198
## May 2017         239438 177477.7 301398.3 144678 334198
## Jun 2017         239438 177477.7 301398.3 144678 334198
## Jul 2017         239438 177477.7 301398.3 144678 334198
## Aug 2017         239438 177477.7 301398.3 144678 334198
## Sep 2017         239438 177477.7 301398.3 144678 334198
## Oct 2017         239438 177477.7 301398.3 144678 334198
## Nov 2017         239438 177477.7 301398.3 144678 334198
## Dec 2017         239438 177477.7 301398.3 144678 334198

Simple Moving Averages

plot(jclaim_ts)

ma3_forecast <- ma(jclaim_ts,order=3)
plot(jclaim_ts)
lines(ma3_forecast,col="Red")

ma3_forecast <- ma(jclaim_ts,order=3)
plot(jclaim_ts)
lines(ma3_forecast,col="Red")
ma6_forecast <- ma(jclaim_ts,order=6)
lines(ma6_forecast,col="Blue")

ma3_forecast <- ma(jclaim_ts,order=3)
plot(jclaim_ts)
lines(ma3_forecast,col="Red")
ma6_forecast <- ma(jclaim_ts,order=6)
lines(ma6_forecast,col="Blue")
ma12_forecast <- ma(jclaim_ts,order=12)
lines(ma12_forecast,col="Green")

ma1_forecast <- ma(jclaim_ts,order=1)
plot(jclaim_ts)
lines(ma1_forecast,col="Purple")

forecast_ma <- forecast(ma1_forecast,h=12)
plot(forecast_ma)


Simple Smoothing

ets_forecast<-ets(jclaim_ts)
ets_forecast
## ETS(M,A,M) 
## 
## Call:
##  ets(y = jclaim_ts) 
## 
##   Smoothing parameters:
##     alpha = 0.1846 
##     beta  = 1e-04 
##     gamma = 2e-04 
## 
##   Initial states:
##     l = 386475.1505 
##     b = -2445.2238 
##     s=1.0109 1.36 1.2893 1.0369 0.9357 0.8008
##            0.839 1.0151 0.9673 0.8938 0.9607 0.8904
## 
##   sigma:  0.0308
## 
##      AIC     AICc      BIC 
## 1376.087 1390.659 1411.691
forecast_ets <- forecast.ets(ets_forecast, h=12)
forecast_ets
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Mar 2017       212544.2 204152.4 220936.1 199710.0 225378.5
## Apr 2017       226974.4 217858.0 236090.8 213032.1 240916.7
## May 2017       208986.5 200449.3 217523.6 195930.0 222042.9
## Jun 2017       223799.9 214503.3 233096.5 209582.0 238017.8
## Jul 2017       232377.0 222562.9 242191.1 217367.6 247386.4
## Aug 2017       190009.1 181851.6 198166.7 177533.2 202485.0
## Sep 2017       179396.8 171568.5 187225.0 167424.5 191369.0
## Oct 2017       207334.8 198140.3 216529.4 193273.0 221396.7
## Nov 2017       227228.6 216989.1 237468.1 211568.6 242888.6
## Dec 2017       279383.2 266591.4 292174.9 259819.8 298946.5
## Jan 2018       291386.0 277831.8 304940.1 270656.7 312115.2
## Feb 2018       214110.5 203992.9 224228.1 198637.0 229584.1
plot(forecast_ets)

ets_forecast$initstate
##             l             b            s1            s2            s3 
##  3.864752e+05 -2.445224e+03  1.010874e+00  1.360013e+00  1.289288e+00 
##            s4            s5            s6            s7            s8 
##  1.036902e+00  9.356991e-01  8.007845e-01  8.389916e-01  1.015108e+00 
##            s9           s10           s11           s12 
##  9.673187e-01  8.938453e-01  9.607378e-01  8.904377e-01
plot(ets_forecast$residuals, main="Residuals from forecasting the Jobless Claims with the Simple Smoothing method", 
     ylab="", xlab="Time")

2 Do a Histogram plot of residuals. What does the plot indicate?

hist(ets_forecast$residuals, xlab = "Residuals", main="Histogram of Residuals from forecasting the Jobless Claims with the Simple Smoothing method")

xyplot(ets_forecast$residuals ~ ets_forecast$fitted, pch=16, cex = 1.5, abline=0)

xyplot(ets_forecast$residuals ~ ets_forecast$x, pch = 16, cex = 1.5, abline = 0)

acf(ets_forecast$residuals, main = "ACF of Residuals of Simple Smoothing")

accuracy_ets <- accuracy(ets_forecast)
accuracy_ets
##                    ME    RMSE      MAE       MPE    MAPE      MASE
## Training set 221.4464 9526.88 7151.973 0.0284336 2.31225 0.2457105
##                    ACF1
## Training set 0.02417527
forecast_ets
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Mar 2017       212544.2 204152.4 220936.1 199710.0 225378.5
## Apr 2017       226974.4 217858.0 236090.8 213032.1 240916.7
## May 2017       208986.5 200449.3 217523.6 195930.0 222042.9
## Jun 2017       223799.9 214503.3 233096.5 209582.0 238017.8
## Jul 2017       232377.0 222562.9 242191.1 217367.6 247386.4
## Aug 2017       190009.1 181851.6 198166.7 177533.2 202485.0
## Sep 2017       179396.8 171568.5 187225.0 167424.5 191369.0
## Oct 2017       207334.8 198140.3 216529.4 193273.0 221396.7
## Nov 2017       227228.6 216989.1 237468.1 211568.6 242888.6
## Dec 2017       279383.2 266591.4 292174.9 259819.8 298946.5
## Jan 2018       291386.0 277831.8 304940.1 270656.7 312115.2
## Feb 2018       214110.5 203992.9 224228.1 198637.0 229584.1
plot(forecast_ets)

summary(forecast_ets)
## 
## Forecast method: ETS(M,A,M)
## 
## Model Information:
## ETS(M,A,M) 
## 
## Call:
##  ets(y = jclaim_ts) 
## 
##   Smoothing parameters:
##     alpha = 0.1846 
##     beta  = 1e-04 
##     gamma = 2e-04 
## 
##   Initial states:
##     l = 386475.1505 
##     b = -2445.2238 
##     s=1.0109 1.36 1.2893 1.0369 0.9357 0.8008
##            0.839 1.0151 0.9673 0.8938 0.9607 0.8904
## 
##   sigma:  0.0308
## 
##      AIC     AICc      BIC 
## 1376.087 1390.659 1411.691 
## 
## Error measures:
##                    ME    RMSE      MAE       MPE    MAPE      MASE
## Training set 221.4464 9526.88 7151.973 0.0284336 2.31225 0.2457105
##                    ACF1
## Training set 0.02417527
## 
## Forecasts:
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Mar 2017       212544.2 204152.4 220936.1 199710.0 225378.5
## Apr 2017       226974.4 217858.0 236090.8 213032.1 240916.7
## May 2017       208986.5 200449.3 217523.6 195930.0 222042.9
## Jun 2017       223799.9 214503.3 233096.5 209582.0 238017.8
## Jul 2017       232377.0 222562.9 242191.1 217367.6 247386.4
## Aug 2017       190009.1 181851.6 198166.7 177533.2 202485.0
## Sep 2017       179396.8 171568.5 187225.0 167424.5 191369.0
## Oct 2017       207334.8 198140.3 216529.4 193273.0 221396.7
## Nov 2017       227228.6 216989.1 237468.1 211568.6 242888.6
## Dec 2017       279383.2 266591.4 292174.9 259819.8 298946.5
## Jan 2018       291386.0 277831.8 304940.1 270656.7 312115.2
## Feb 2018       214110.5 203992.9 224228.1 198637.0 229584.1

Holt-Winters

jclaim_ts_HW <- HoltWinters(jclaim_ts)

jclaim_ts_HW
## Holt-Winters exponential smoothing with trend and additive seasonal component.
## 
## Call:
## HoltWinters(x = jclaim_ts)
## 
## Smoothing parameters:
##  alpha: 0.3439747
##  beta : 0
##  gamma: 0.3566112
## 
## Coefficients:
##           [,1]
## a   230043.651
## b    -2789.609
## s1  -30101.224
## s2  -13850.840
## s3  -33177.455
## s4  -15194.520
## s5    3094.044
## s6  -51749.479
## s7  -64510.005
## s8  -26017.838
## s9   15490.931
## s10  88722.467
## s11 112567.454
## s12   8294.312
plot(jclaim_ts_HW)

To make forecasts for future times not included in the original time series, we use the “forecast.HoltWinters()” function in the “forecast” package

jclaims_ts_HW_forecast <- forecast.HoltWinters(jclaim_ts_HW, h= 12)
plot(jclaims_ts_HW_forecast)

jclaim_ts_HW$coefficients
##          a          b         s1         s2         s3         s4 
## 230043.651  -2789.609 -30101.224 -13850.840 -33177.455 -15194.520 
##         s5         s6         s7         s8         s9        s10 
##   3094.044 -51749.479 -64510.005 -26017.838  15490.931  88722.467 
##        s11        s12 
## 112567.454   8294.312
sd(complete.cases(jclaims_ts_HW_forecast$residuals))
## [1] 0.4033756
resHW <- residuals(jclaims_ts_HW_forecast)
fitHW <- fitted(jclaims_ts_HW_forecast)
actHW <- jclaims_ts_HW_forecast$x
plot(resHW, main="Residuals from forecasting the Jobless Claims with the Holt-Winter method", 
     ylab="", xlab="Time")

2 Do a Histogram plot of residuals. What does the plot indicate?

hist(resHW, xlab = "Residuals", main="Histogram of Residuals from forecasting the Jobless Claims with the Holt-Winter method")

xyplot(resHW ~ fitHW, pch=16, cex = 1.5, abline=0)

xyplot(resHW ~ actHW, pch = 16, cex=1.5, abline = 0)

Acf(resHW, main = "ACF of Residuals of Holt-Winter")

accuracy_HW <- accuracy(jclaims_ts_HW_forecast)
accuracy_HW
##                     ME     RMSE      MAE         MPE    MAPE      MASE
## Training set -572.7954 15381.03 12401.82 -0.03340007 4.34673 0.4260723
##                    ACF1
## Training set 0.05240718
jclaims_ts_HW_forecast
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Mar 2017       197152.8 177246.5 217059.2 166708.7 227597.0
## Apr 2017       210613.6 189562.5 231664.7 178418.7 242808.5
## May 2017       188497.4 166360.7 210634.1 154642.2 222352.5
## Jun 2017       203690.7 180519.2 226862.2 168252.9 239128.5
## Jul 2017       219189.6 195027.6 243351.7 182237.0 256142.3
## Aug 2017       161556.5 136443.0 186670.1 123148.7 199964.4
## Sep 2017       146006.4 119976.1 172036.7 106196.5 185816.2
## Oct 2017       181708.9 154793.1 208624.7 140544.8 222873.1
## Nov 2017       220428.1 192655.0 248201.2 177952.8 262903.4
## Dec 2017       290870.0 262265.3 319474.8 247122.9 334617.2
## Jan 2018       311925.4 282512.5 341338.3 266942.3 356908.5
## Feb 2018       204862.7 174663.3 235062.0 158676.7 251048.6
plot(jclaims_ts_HW_forecast)

summary(jclaims_ts_HW_forecast)
## 
## Forecast method: HoltWinters
## 
## Model Information:
## Holt-Winters exponential smoothing with trend and additive seasonal component.
## 
## Call:
## HoltWinters(x = jclaim_ts)
## 
## Smoothing parameters:
##  alpha: 0.3439747
##  beta : 0
##  gamma: 0.3566112
## 
## Coefficients:
##           [,1]
## a   230043.651
## b    -2789.609
## s1  -30101.224
## s2  -13850.840
## s3  -33177.455
## s4  -15194.520
## s5    3094.044
## s6  -51749.479
## s7  -64510.005
## s8  -26017.838
## s9   15490.931
## s10  88722.467
## s11 112567.454
## s12   8294.312
## 
## Error measures:
##                     ME     RMSE      MAE         MPE    MAPE      MASE
## Training set -572.7954 15381.03 12401.82 -0.03340007 4.34673 0.4260723
##                    ACF1
## Training set 0.05240718
## 
## Forecasts:
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Mar 2017       197152.8 177246.5 217059.2 166708.7 227597.0
## Apr 2017       210613.6 189562.5 231664.7 178418.7 242808.5
## May 2017       188497.4 166360.7 210634.1 154642.2 222352.5
## Jun 2017       203690.7 180519.2 226862.2 168252.9 239128.5
## Jul 2017       219189.6 195027.6 243351.7 182237.0 256142.3
## Aug 2017       161556.5 136443.0 186670.1 123148.7 199964.4
## Sep 2017       146006.4 119976.1 172036.7 106196.5 185816.2
## Oct 2017       181708.9 154793.1 208624.7 140544.8 222873.1
## Nov 2017       220428.1 192655.0 248201.2 177952.8 262903.4
## Dec 2017       290870.0 262265.3 319474.8 247122.9 334617.2
## Jan 2018       311925.4 282512.5 341338.3 266942.3 356908.5
## Feb 2018       204862.7 174663.3 235062.0 158676.7 251048.6

Accuracy Measures

final_accuracy <- rbind(accuracy_naive,accuracy_ets,accuracy_HW)

rownames(final_accuracy) <- c("Naive Method", "ETS", "Holt-Winter")

final_accuracy
##                      ME     RMSE       MAE         MPE     MAPE      MASE
## Naive Method -1592.9831 48347.84 38382.203 -1.71708100 12.62999 1.3186447
## ETS            221.4464  9526.88  7151.973  0.02843360  2.31225 0.2457105
## Holt-Winter   -572.7954 15381.03 12401.819 -0.03340007  4.34673 0.4260723
##                    ACF1
## Naive Method 0.12478674
## ETS          0.02417527
## Holt-Winter  0.05240718

Based on all the accuracy measures that we see above, Simple Smoothing done by the ETS Method seems to be the best forecast method for the given dataset.


Conclusion

#Naive Method
snaive_forecast <- snaive(jclaim_ts, 24)
plot(snaive_forecast)

naive_forecast <- naive(jclaim_ts, 24)
plot(naive_forecast)
lines(snaive_forecast$mean,col="black")

#SimpleSmoothing
ma1_forecast <- ma(jclaim_ts,order=1)
forecast_ma <- forecast(ma1_forecast,h=24)
plot(forecast_ma)

#Holt-Winter
jclaim_ts_HW <- HoltWinters(jclaim_ts)
jclaims_ts_HW_forecast <- forecast.HoltWinters(jclaim_ts_HW, h= 24)
plot(jclaims_ts_HW_forecast)

forecast_ma
##          Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## Mar 2017       212544.2 204152.4 220936.1 199710.0 225378.5
## Apr 2017       226974.4 217858.0 236090.8 213032.1 240916.7
## May 2017       208986.5 200449.3 217523.6 195930.0 222042.9
## Jun 2017       223799.9 214503.3 233096.5 209582.0 238017.8
## Jul 2017       232377.0 222562.9 242191.1 217367.6 247386.4
## Aug 2017       190009.1 181851.6 198166.7 177533.2 202485.0
## Sep 2017       179396.8 171568.5 187225.0 167424.5 191369.0
## Oct 2017       207334.8 198140.3 216529.4 193273.0 221396.7
## Nov 2017       227228.6 216989.1 237468.1 211568.6 242888.6
## Dec 2017       279383.2 266591.4 292174.9 259819.8 298946.5
## Jan 2018       291386.0 277831.8 304940.1 270656.7 312115.2
## Feb 2018       214110.5 203992.9 224228.1 198637.0 229584.1
## Mar 2018       186425.4 177476.6 195374.2 172739.4 200111.4
## Apr 2018       198793.7 189101.1 208486.3 183970.1 213617.3
## May 2018       182767.9 173716.9 191818.9 168925.6 196610.2
## Jun 2018       195426.2 185597.0 205255.5 180393.7 210458.8
## Jul 2018       202601.3 192252.1 212950.6 186773.5 218429.1
## Aug 2018       165399.5 156818.8 173980.1 152276.5 178522.5
## Sep 2018       155908.1 147693.8 164122.4 143345.4 168470.7
## Oct 2018       179888.7 170263.3 189514.2 165167.9 194609.5
## Nov 2018       196813.5 186118.3 207508.7 180456.7 213170.4
## Dec 2018       241565.2 228233.3 254897.2 221175.8 261954.7
## Jan 2019       251493.3 237396.4 265590.2 229934.0 273052.6
## Feb 2019       184459.1 173957.7 194960.6 168398.5 200519.7

Rank forecasting methods that best forecast for this time series based on historical values.

  1. Simple Smoothing (ETS)
  2. Holt-Winter
  3. Naive Method