setwd("/Users/brendanobrien/Downloads")
BAC.data=read.csv("/Users/brendanobrien/Downloads/BAC.csv", header = T)
BAC.ts<-ts(BAC.data$Adj.Close, frequency=252, start=c(2013,1))
plot(BAC.ts)
Create Training and Test Sets
BAC.train<-BAC.ts[1:1007]
BAC.test<-BAC.ts[1006:1259]
Creating training and test set for regressor
vol.train <- as.numeric(BAC.data$Volume [1:1007])
vol.test <- as.numeric(BAC.data$Volume[1006:1259])
require(forecast)
## Loading required package: forecast
## Warning: package 'forecast' was built under R version 3.4.4
library(forecast)
BAC.AA <- auto.arima(BAC.train, xreg = vol.train)
summary(BAC.AA)
## Series: BAC.train
## Regression with ARIMA(0,1,1) errors
##
## Coefficients:
## Warning in sqrt(diag(x$var.coef)): NaNs produced
## ma1 xreg
## 0.0606 0
## s.e. NaN NaN
##
## sigma^2 estimated as 0.0703: log likelihood=-90.97
## AIC=187.93 AICc=187.96 BIC=202.67
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.01088196 0.2647387 0.196047 0.04276703 1.170608 0.9985467
## ACF1
## Training set -0.003031186
forecast1 <- forecast(BAC.AA, h=254, xreg = vol.test)
acc.AA1 <- accuracy(forecast1, BAC.test)
acc.AA1
## ME RMSE MAE MPE MAPE
## Training set 0.01088196 0.2647387 0.196047 0.04276703 1.170608
## Test set 3.48904700 3.7641047 3.494150 11.51333230 11.532833
## MASE ACF1
## Training set 0.9985467 -0.003031186
## Test set 17.7971162 NA
BAC.AA2 <- auto.arima(BAC.train)
summary(BAC.AA2)
## Series: BAC.train
## ARIMA(0,1,1)
##
## Coefficients:
## ma1
## 0.0609
## s.e. 0.0322
##
## sigma^2 estimated as 0.07092: log likelihood=-95.91
## AIC=195.81 AICc=195.82 BIC=205.64
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.01094229 0.2660418 0.196982 0.04289651 1.178701 1.003309
## ACF1
## Training set -0.002894913
forecast2 <- forecast(BAC.AA2, h=254)
acc.AA2 <- accuracy(forecast2, BAC.test)
acc.AA2
## ME RMSE MAE MPE MAPE MASE
## Training set 0.01094229 0.2660418 0.196982 0.04289651 1.178701 1.003309
## Test set 3.47451417 3.7516421 3.479689 11.46397193 11.483743 17.723459
## ACF1
## Training set -0.002894913
## Test set NA
ARIMA without regressor performs better according to test metrics