setwd("/Users/brendanobrien/Downloads")
BAC.data=read.csv("/Users/brendanobrien/Downloads/BAC.csv", header = T)

Bank of America Time Series Data

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

Arima Model With Regressor

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
Model 1 Accuracy
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

Arima Model Without Regressor

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
Model 2 Accuracy
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