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(vars)
## Loading required package: MASS
## Loading required package: strucchange
## Loading required package: sandwich
## Loading required package: urca
## Loading required package: lmtest
library(tseries)
AMD=read.csv("C:/Users/yiq00/Downloads/AMD.csv",header=TRUE)
NVDA=read.csv("C:/Users/yiq00/Downloads/NVDA.csv",header=TRUE)
str(AMD)
## 'data.frame': 60 obs. of 7 variables:
## $ Date : chr "2015-11-01" "2015-12-01" "2016-01-01" "2016-02-01" ...
## $ Open : num 2.13 2.36 2.77 2.17 2.16 2.79 3.58 4.6 5.09 6.89 ...
## $ High : num 2.4 3.06 2.82 2.19 2.98 3.99 4.71 5.52 7.16 8 ...
## $ Low : num 1.94 2.2 1.75 1.81 2.12 2.6 3.45 4.07 4.82 6.15 ...
## $ Close : num 2.36 2.87 2.2 2.14 2.85 3.55 4.57 5.14 6.86 7.4 ...
## $ Adj.Close: num 2.36 2.87 2.2 2.14 2.85 3.55 4.57 5.14 6.86 7.4 ...
## $ Volume : num 1.36e+08 2.66e+08 3.55e+08 1.93e+08 3.33e+08 ...
head(AMD)
## Date Open High Low Close Adj.Close Volume
## 1 2015-11-01 2.13 2.40 1.94 2.36 2.36 136451200
## 2 2015-12-01 2.36 3.06 2.20 2.87 2.87 266450600
## 3 2016-01-01 2.77 2.82 1.75 2.20 2.20 355489300
## 4 2016-02-01 2.17 2.19 1.81 2.14 2.14 192749800
## 5 2016-03-01 2.16 2.98 2.12 2.85 2.85 333321700
## 6 2016-04-01 2.79 3.99 2.60 3.55 3.55 472576300
summary(AMD)
## Date Open High Low
## Length:60 Min. : 2.13 Min. : 2.19 Min. : 1.750
## Class :character 1st Qu.:10.31 1st Qu.:11.61 1st Qu.: 9.325
## Mode :character Median :14.29 Median :15.60 Median :12.300
## Mean :22.65 Mean :26.32 Mean :20.414
## 3rd Qu.:30.55 3rd Qu.:34.31 3rd Qu.:27.485
## Max. :91.92 Max. :94.28 Max. :76.100
## Close Adj.Close Volume
## Min. : 2.14 Min. : 2.14 Min. :1.365e+08
## 1st Qu.:10.35 1st Qu.:10.35 1st Qu.:9.883e+08
## Median :14.51 Median :14.51 Median :1.206e+09
## Mean :23.68 Mean :23.68 Mean :1.273e+09
## 3rd Qu.:30.56 3rd Qu.:30.56 3rd Qu.:1.592e+09
## Max. :90.82 Max. :90.82 Max. :3.063e+09
str(NVDA)
## 'data.frame': 60 obs. of 7 variables:
## $ Date : chr "2015-12-01" "2016-01-01" "2016-02-01" "2016-03-01" ...
## $ Open : num 32 32.3 29.3 31.4 35.4 ...
## $ High : num 33.9 33.4 32.1 36.2 37.5 ...
## $ Low : num 32 26.5 24.8 31 34.6 ...
## $ Close : num 33 29.3 31.4 35.6 35.5 ...
## $ Adj.Close: num 32.3 28.7 30.7 35 34.9 ...
## $ Volume : int 140679300 203474500 225001200 164447600 168356300 259195900 204947500 180251300 232628000 216631300 ...
head(NVDA)
## Date Open High Low Close Adj.Close Volume
## 1 2015-12-01 32.00 33.94 31.97 32.96 32.25914 140679300
## 2 2016-01-01 32.29 33.44 26.45 29.29 28.66718 203474500
## 3 2016-02-01 29.26 32.12 24.75 31.36 30.69317 225001200
## 4 2016-03-01 31.44 36.25 31.04 35.63 34.99941 164447600
## 5 2016-04-01 35.41 37.46 34.63 35.53 34.90119 168356300
## 6 2016-05-01 35.87 46.82 34.40 46.72 45.89315 259195900
summary(NVDA)
## Date Open High Low
## Length:60 Min. : 29.26 Min. : 32.12 Min. : 24.75
## Class :character 1st Qu.:104.66 1st Qu.:117.92 1st Qu.: 95.65
## Mode :character Median :173.80 Median :189.80 Median :158.85
## Mean :187.98 Mean :210.43 Mean :172.45
## 3rd Qu.:238.58 3rd Qu.:259.75 3rd Qu.:218.30
## Max. :550.32 Max. :589.07 Max. :495.80
## Close Adj.Close Volume
## Min. : 29.29 Min. : 28.67 Min. :140679300
## 1st Qu.:108.38 1st Qu.:107.20 1st Qu.:203201450
## Median :176.42 Median :175.46 Median :266070900
## Mean :195.93 Mean :194.99 Mean :276868287
## 3rd Qu.:242.72 3rd Qu.:240.85 3rd Qu.:339431000
## Max. :541.22 Max. :541.06 Max. :586138000
AMDts=ts(AMD[,2], start=c(2015,11,01), end=c(2020,10,01), frequency = 12)
plot(AMDts, main="Monthly AMD Volume (2015-2020)",ylab="Volume")
NVDAts=ts(NVDA[,2], start=c(2015,12,01), end=c(2020,11,01), frequency = 12)
plot(NVDAts, main="Monthly NVDA Volume (2015-2020)",ylab="Volume")
Forcasting auto.arima
plot(decompose(AMDts))
Model_1.arima=auto.arima(AMDts, stepwise=FALSE, approximation=FALSE)
Model_1.arima
## Series: AMDts
## ARIMA(0,1,0) with drift
##
## Coefficients:
## drift
## 1.3717
## s.e. 0.6358
##
## sigma^2 estimated as 24.26: log likelihood=-177.28
## AIC=358.56 AICc=358.78 BIC=362.72
summary(Model_1.arima)
## Series: AMDts
## ARIMA(0,1,0) with drift
##
## Coefficients:
## drift
## 1.3717
## s.e. 0.6358
##
## sigma^2 estimated as 24.26: log likelihood=-177.28
## AIC=358.56 AICc=358.78 BIC=362.72
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 1.263841e-05 4.842464 2.947826 -8.709101 16.96032 0.2192372
## ACF1
## Training set 0.02213757
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.9428
## beta = 0.0162
##
## Initial states:
## l = 1.6417
## b = 0.4229
##
## sigma: 0.1733
##
## AIC AICc BIC
## 366.4565 367.5676 376.9282
plot(Model_2.ETS)
summary(Model_2.ETS)
## ETS(M,A,N)
##
## Call:
## ets(y = AMDts, model = "ZZZ")
##
## Smoothing parameters:
## alpha = 0.9428
## beta = 0.0162
##
## Initial states:
## l = 1.6417
## b = 0.4229
##
## sigma: 0.1733
##
## AIC AICc BIC
## 366.4565 367.5676 376.9282
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.8864713 4.912317 2.814495 0.3908032 12.7735 0.209321 0.03848114
hist(residuals(Model_2.ETS))
Garch
Model_3.Garch <- garch(AMDts)
##
## ***** ESTIMATION WITH ANALYTICAL GRADIENT *****
##
##
## I INITIAL X(I) D(I)
##
## 1 3.651313e+02 1.000e+00
## 2 5.000000e-02 1.000e+00
## 3 5.000000e-02 1.000e+00
##
## IT NF F RELDF PRELDF RELDX STPPAR D*STEP NPRELDF
## 0 1 2.308e+02
## 1 2 2.152e+02 6.78e-02 8.31e-01 1.4e-03 1.9e+02 1.0e+00 8.02e+01
## 2 4 2.142e+02 4.67e-03 4.67e-03 6.7e-05 1.2e+01 5.0e-02 8.47e-01
## 3 6 2.124e+02 8.19e-03 8.11e-03 1.3e-04 2.3e+00 1.0e-01 2.35e-02
## 4 9 2.124e+02 1.50e-04 1.50e-04 2.7e-06 2.5e+02 2.0e-03 1.91e-02
## 5 11 2.123e+02 2.99e-04 2.99e-04 5.3e-06 3.5e+01 4.0e-03 2.14e-02
## 6 13 2.122e+02 5.92e-04 5.91e-04 1.1e-05 1.8e+01 8.0e-03 2.13e-02
## 7 16 2.122e+02 1.17e-05 1.17e-05 2.1e-07 3.4e+03 1.6e-04 2.11e-02
## 8 18 2.122e+02 2.35e-06 2.35e-06 4.3e-08 1.7e+04 3.2e-05 2.13e-02
## 9 20 2.122e+02 4.70e-06 4.70e-06 8.5e-08 2.1e+03 6.4e-05 2.13e-02
## 10 22 2.122e+02 9.40e-07 9.40e-07 1.7e-08 4.2e+04 1.3e-05 2.13e-02
## 11 25 2.122e+02 1.88e-08 1.88e-08 3.4e-10 2.1e+06 2.6e-07 2.13e-02
## 12 27 2.122e+02 3.76e-08 3.76e-08 6.8e-10 2.7e+05 5.1e-07 2.13e-02
## 13 29 2.122e+02 7.52e-08 7.52e-08 1.4e-09 1.3e+05 1.0e-06 2.13e-02
## 14 31 2.122e+02 1.50e-08 1.50e-08 2.7e-10 2.7e+06 2.0e-07 2.13e-02
## 15 33 2.122e+02 3.01e-09 3.01e-09 5.5e-11 1.3e+07 4.1e-08 2.13e-02
## 16 35 2.122e+02 6.01e-10 6.01e-10 1.1e-11 6.6e+07 8.2e-09 2.13e-02
## 17 37 2.122e+02 1.20e-09 1.20e-09 2.2e-11 8.3e+06 1.6e-08 2.13e-02
## 18 39 2.122e+02 2.41e-10 2.41e-10 4.4e-12 1.7e+08 3.3e-09 2.13e-02
## 19 42 2.122e+02 4.81e-12 4.81e-12 8.8e-14 8.3e+09 6.6e-11 2.13e-02
## 20 44 2.122e+02 9.62e-12 9.62e-12 1.8e-13 1.0e+09 1.3e-10 2.13e-02
## 21 46 2.122e+02 1.92e-11 1.92e-11 3.5e-13 5.2e+08 2.6e-10 2.13e-02
## 22 49 2.122e+02 3.85e-13 3.85e-13 7.0e-15 1.0e+11 5.2e-12 2.13e-02
## 23 51 2.122e+02 7.70e-13 7.70e-13 1.4e-14 1.3e+10 1.0e-11 2.13e-02
## 24 53 2.122e+02 1.54e-12 1.54e-12 2.8e-14 6.5e+09 2.1e-11 2.13e-02
## 25 55 2.122e+02 3.08e-13 3.08e-13 5.6e-15 1.3e+11 4.2e-12 2.13e-02
## 26 56 2.122e+02 -4.71e+07 6.16e-13 1.1e-14 6.5e+10 8.4e-12 2.13e-02
##
## ***** FALSE CONVERGENCE *****
##
## FUNCTION 2.122093e+02 RELDX 1.120e-14
## FUNC. EVALS 56 GRAD. EVALS 26
## PRELDF 6.158e-13 NPRELDF 2.129e-02
##
## I FINAL X(I) D(I) G(I)
##
## 1 3.651312e+02 1.000e+00 3.081e-02
## 2 1.005863e+00 1.000e+00 3.438e+00
## 3 1.725413e-12 1.000e+00 1.519e+01
## Warning in sqrt(pred$e): ²úÉúÁËNaNs
summary(Model_3.Garch)
##
## Call:
## garch(x = AMDts)
##
## Model:
## GARCH(1,1)
##
## Residuals:
## Min 1Q Median 3Q Max
## 0.1123 0.4777 0.6094 0.8842 1.3929
##
## Coefficient(s):
## Estimate Std. Error t value Pr(>|t|)
## a0 3.651e+02 6.052e+02 0.603 0.546
## a1 1.006e+00 1.776e+00 0.566 0.571
## b1 1.725e-12 1.379e+00 0.000 1.000
##
## Diagnostic Tests:
## Jarque Bera Test
##
## data: Residuals
## X-squared = 0.86805, df = 2, p-value = 0.6479
##
##
## Box-Ljung test
##
## data: Squared.Residuals
## X-squared = 36.748, df = 1, p-value = 1.344e-09
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")