library(knitr)
library(fpp2)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## -- Attaching packages ---------------------------------------------- fpp2 2.4 --
## √ ggplot2 3.3.2 √ fma 2.4
## √ forecast 8.13 √ expsmooth 2.3
##
AMD=read.csv("C:/Users/yiq00/Downloads/AMD.csv",header=TRUE)
str(AMD)
## 'data.frame': 35 obs. of 7 variables:
## $ Date : chr "2018-02-01" "2018-03-01" "2018-04-01" "2018-05-01" ...
## $ Open : num 13.62 12.26 9.99 10.83 13.98 ...
## $ High : num 13.8 12.8 11.4 13.9 17.3 ...
## $ Low : num 10.63 9.79 9.04 10.77 13.92 ...
## $ Close : num 12.1 10.1 10.9 13.7 15 ...
## $ Adj.Close: num 12.1 10.1 10.9 13.7 15 ...
## $ Volume : num 1.10e+09 1.48e+09 1.16e+09 1.02e+09 1.63e+09 ...
head(AMD)
## Date Open High Low Close Adj.Close Volume
## 1 2018-02-01 13.62 13.84 10.63 12.11 12.11 1103985800
## 2 2018-03-01 12.26 12.82 9.79 10.05 10.05 1483511900
## 3 2018-04-01 9.99 11.36 9.04 10.88 10.88 1163360900
## 4 2018-05-01 10.83 13.95 10.77 13.73 13.73 1020602700
## 5 2018-06-01 13.98 17.34 13.92 14.99 14.99 1632781900
## 6 2018-07-01 14.80 20.18 14.74 18.33 18.33 1456419400
summary(AMD)
## Date Open High Low
## Length:35 Min. : 9.99 Min. :11.36 Min. : 9.04
## Class :character 1st Qu.:20.45 1st Qu.:25.33 1st Qu.:17.06
## Mode :character Median :30.50 Median :34.30 Median :27.43
## Mean :36.80 Mean :42.47 Mean :33.65
## 3rd Qu.:47.14 3rd Qu.:57.80 3rd Qu.:43.90
## Max. :91.92 Max. :94.28 Max. :78.97
## Close Adj.Close Volume
## Min. :10.05 Min. :10.05 Min. :2.691e+07
## 1st Qu.:22.41 1st Qu.:22.41 1st Qu.:1.166e+09
## Median :30.45 Median :30.45 Median :1.284e+09
## Mean :38.38 Mean :38.38 Mean :1.453e+09
## 3rd Qu.:49.70 3rd Qu.:49.70 3rd Qu.:1.660e+09
## Max. :90.82 Max. :90.82 Max. :3.063e+09
AMDts=ts(AMD[,2], start=c(2018,02,01), end=c(2020,11,11), frequency = 12)
plot(AMDts, main="Monthly AMD Volume (2018-2929)",ylab="Volume")
Model 1
par(mfrow=c(3,2))
Model1 <- ets(AMDts, model="ZZZ")
Model1.pred=forecast(Model1,h=8)
plot(forecast(Model1,h=8), ylab="Volume",main="Model1 Auto-select: MAN")
Model1$par
## alpha beta l b
## 9.099343e-01 1.000672e-04 1.157486e+01 1.514362e+00
summary(Model1)
## ETS(M,A,N)
##
## Call:
## ets(y = AMDts, model = "ZZZ")
##
## Smoothing parameters:
## alpha = 0.9099
## beta = 1e-04
##
## Initial states:
## l = 11.5749
## b = 1.5144
##
## sigma: 0.1752
##
## AIC AICc BIC
## 239.0631 241.2059 246.6949
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.4414538 6.470309 4.334353 -2.174877 13.29986 0.1890254 0.1195176
hist(residuals(Model1))
Model 2
Model2 <- ets(AMDts, model="ANN")
Model2.pred=forecast(Model2,h=8)
plot(forecast(Model2,h=8), ylab="Volume",main="Model2 ANN")
Model2$par
## alpha l
## 0.9998997 13.6217201
summary(Model2)
## ETS(A,N,N)
##
## Call:
## ets(y = AMDts, model = "ANN")
##
## Smoothing parameters:
## alpha = 0.9999
##
## Initial states:
## l = 13.6217
##
## sigma: 6.8788
##
## AIC AICc BIC
## 254.9696 255.7696 259.5487
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 1.830448 6.673457 4.462102 3.423975 13.35643 0.1945967 0.06455858
hist(residuals(Model2))
Model 3
Model3 <- ets(AMDts, model="MAM")
Model3.pred=forecast(Model3,h=8)
plot(forecast(Model3,h=8), ylab="Volume",main="Model3 ANN")
Model3$par
## alpha beta gamma l b s0
## 0.3329827097 0.0001357182 0.6665423464 1.8633693565 0.5825850997 0.2705481754
## s1 s2 s3 s4 s5 s6
## 0.3728476172 0.3010387436 0.4932416452 0.5127226516 0.7570400927 0.4195608650
## s7 s8 s9 s10
## 0.3933657264 0.3463214224 0.5652019143 0.9262677038
summary(Model3)
## ETS(M,A,M)
##
## Call:
## ets(y = AMDts, model = "MAM")
##
## Smoothing parameters:
## alpha = 0.333
## beta = 1e-04
## gamma = 0.6665
##
## Initial states:
## l = 1.8634
## b = 0.5826
## s = 0.2705 0.3728 0.301 0.4932 0.5127 0.757
## 0.4196 0.3934 0.3463 0.5652 0.9263 6.6418
##
## sigma: 1.2484
##
## AIC AICc BIC
## 372.7191 410.9691 398.6672
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set -13.16553 68.11828 28.37142 -47.45162 94.16887 1.237306 0.2516828
hist(residuals(Model3))
Among these three models it is not quite clear that Model 1 is the best with lower AIC and BIC.