library(forecast)
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(xts)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(TTR)
library(tseries)
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-2020)",ylab="Volume")

Forcasting

plot(decompose(AMDts))

Using auto.arima

Model_1.arima=auto.arima(AMDts, stepwise=FALSE, approximation=FALSE)
Model_1.arima
## Series: AMDts 
## ARIMA(0,1,0) with drift 
## 
## Coefficients:
##        drift
##       1.8858
## s.e.  1.1325
## 
## sigma^2 estimated as 43.65:  log likelihood=-108.62
## AIC=221.25   AICc=221.65   BIC=224.24
summary(Model_1.arima)
## Series: AMDts 
## ARIMA(0,1,0) with drift 
## 
## Coefficients:
##        drift
##       1.8858
## s.e.  1.1325
## 
## sigma^2 estimated as 43.65:  log likelihood=-108.62
## AIC=221.25   AICc=221.65   BIC=224.24
## 
## Training set error measures:
##                        ME     RMSE      MAE       MPE     MAPE     MASE
## Training set 0.0003451246 6.409542 4.340809 -3.570653 13.56603 0.189307
##                    ACF1
## Training set 0.05987298
hist(residuals(Model_1.arima))

Model_1.arima.fc=forecast(Model_1.arima,h=6)
plot(Model_1.arima.fc, main="Monthly AMD Volume (2018-2020)",ylab="Volume")

Using ETS

Model_2.ETS <- ets(AMDts, model="ZZZ")
Model_2.ETS
## 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
plot(Model_2.ETS)

summary(Model_2.ETS)
## 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(Model_2.ETS))

I will be using MNM model Using MNM model

Model_2.ETS.fc=forecast(Model_2.ETS,h=6)
plot(Model_2.ETS.fc, ylab="Volume",main="Model_2 ETS Auto-select: MNM")