## Data Set
df <- read.csv("//Users//kevinclifford//Downloads//Alcohol_Sales.csv", header=TRUE)
df$Sales <- df$S4248SM144NCEN
df$S4248SM144NCEN <- NULL
ts <- ts(df$Sales, frequency = 12, start=c(1992))
plot(ts)
## ETS Models
fit1 <- ets(ts)
fit1
## ETS(M,Ad,M)
##
## Call:
## ets(y = ts)
##
## Smoothing parameters:
## alpha = 0.0805
## beta = 0.0232
## gamma = 1e-04
## phi = 0.9592
##
## Initial states:
## l = 4199.083
## b = 3.4466
## s = 1.1642 1.0362 1.0338 0.9829 1.0534 1.0081
## 1.106 1.0665 0.9754 0.9758 0.8275 0.7702
##
## sigma: 0.0455
##
## AIC AICc BIC
## 5672.314 5674.549 5740.422
plot(fit1)
accuracy(fit1)
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 53.45892 364.3906 285.5164 0.5004852 3.657119 0.6753521 -0.2918586
fe <- forecast(fit1, 12)
acc <- accuracy(fe, df$Sales[1:12])
acc
## ME RMSE MAE MPE MAPE MASE
## Training set 53.45892 364.3906 285.5164 0.5004852 3.657119 0.312568
## Test set -9484.70207 9600.8980 9484.7021 -228.2510458 228.251046 10.383342
## ACF1
## Training set -0.2918586
## Test set NA
plot(fe, main="MMN")
arima1 <- auto.arima(ts)
arima1
## Series: ts
## ARIMA(3,1,1)(0,1,2)[12]
##
## Coefficients:
## ar1 ar2 ar3 ma1 sma1 sma2
## -0.1428 0.1580 0.5125 -0.9483 -0.2601 -0.2642
## s.e. 0.0637 0.0651 0.0609 0.0328 0.0581 0.0543
##
## sigma^2 = 102379: log likelihood = -2242.28
## AIC=4498.56 AICc=4498.93 BIC=4524.77
plot(arima1)
accuracy(arima1)
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 34.22564 310.4741 232.8522 0.3437269 2.939946 0.5507817 0.02751723
fe2 <- forecast(arima1, 12)
acc2 <- accuracy(fe2, df$Sales[1:12])
acc2
## ME RMSE MAE MPE MAPE MASE
## Training set 34.22564 310.4741 232.8522 0.3437269 2.939946 0.2549141
## Test set -9644.03404 9745.1509 9644.0340 -232.2911945 232.291195 10.5577699
## ACF1
## Training set 0.02751723
## Test set NA
plot(fe2, main="Auto-ARIMA")
##Neural networks
time <- fe2$residuals %>% as_tsibble()
beer <- ts %>% as_tsibble
fit <- time %>% model(NNETAR(value))
fit %>%
forecast(h = 30) %>%
autoplot(time) +
labs(x = "Month", y = "Counts", title = "Monthly Beer Sales")
fit3 <- beer %>% model(NNETAR(value))
fit3 %>%
forecast(h = 30) %>%
autoplot(beer) +
labs(x = "Month", y = "Counts", title = "Monthly Beer Sales")
accuracy(fit3)
## # A tibble: 1 × 10
## .model .type ME RMSE MAE MPE MAPE MASE RMSSE ACF1
## <chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 NNETAR(value) Training 0.706 136. 107. -0.0560 1.50 0.252 0.253 0.0640
gg_tsresiduals(fit3)
## Warning: Removed 15 row(s) containing missing values (geom_path).
## Warning: Removed 15 rows containing missing values (geom_point).
## Warning: Removed 15 rows containing non-finite values (stat_bin).
#Neural Network example sunspots <- sunspot.year %>% as_tsibble() fit <- sunspots %>% model(NNETAR(sqrt(value))) fit %>% forecast(h = 30) %>% autoplot(sunspots) + labs(x = “Year”, y = “Counts”, title = “Yearly sunspots”)