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")