Charter Communications
chtr = read.csv("CHTR.csv")
library(fpp)
## Loading required package: forecast
## Warning: package 'forecast' was built under R version 3.3.2
## Loading required package: fma
## Warning: package 'fma' was built under R version 3.3.2
## Loading required package: expsmooth
## Loading required package: lmtest
## Warning: package 'lmtest' was built under R version 3.3.2
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 3.3.2
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: tseries
## Warning: package 'tseries' was built under R version 3.3.2
library(forecast)
library(xts)
## Warning: package 'xts' was built under R version 3.3.2
library(tseries)
str(chtr)
## 'data.frame': 1259 obs. of 7 variables:
## $ Date : Factor w/ 1259 levels "2013-04-10","2013-04-11",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ Open : num 104 104 104 104 104 ...
## $ High : num 105 105 105 104 105 ...
## $ Low : num 103 103 104 103 103 ...
## $ Close : num 104 105 105 103 105 ...
## $ Adj.Close: num 104 105 105 103 105 ...
## $ Volume : int 767200 489600 526300 425100 492300 491100 962200 663900 681500 619400 ...
head(chtr)
## Date Open High Low Close Adj.Close Volume
## 1 2013-04-10 104.46 104.84 102.97 103.67 103.67 767200
## 2 2013-04-11 103.77 104.84 103.29 104.84 104.84 489600
## 3 2013-04-12 104.19 105.47 104.19 105.06 105.06 526300
## 4 2013-04-15 104.26 104.26 102.89 103.08 103.08 425100
## 5 2013-04-16 104.24 105.20 102.95 104.91 104.91 492300
## 6 2013-04-17 104.64 105.39 103.22 104.03 104.03 491100
tail (chtr)
## Date Open High Low Close Adj.Close Volume
## 1254 2018-04-02 308.91 310.60 298.67 303.87 303.87 1753000
## 1255 2018-04-03 305.51 312.37 303.79 306.37 306.37 1706800
## 1256 2018-04-04 304.38 312.47 302.05 311.69 311.69 1857100
## 1257 2018-04-05 312.50 317.64 311.94 317.02 317.02 875500
## 1258 2018-04-06 314.88 316.08 308.47 310.67 310.67 1235000
## 1259 2018-04-09 311.88 319.74 310.67 316.51 316.51 1144000
chtr.ts<-ts(chtr$Adj.Close, frequency=252, start=c(2013,71))
plot(chtr.ts)

train = chtr[2:1008,]
test = chtr[1009:1259,]
train.ts<-ts(train$Adj.Close, frequency=252, start=c(2013,71))
plot(train.ts)

test.ts<-ts(test$Adj.Close, frequency=252, start=c(2017,71))
plot(test.ts)

vol.train <- as.numeric(chtr$Volume[1:1007])
vol.test <- as.numeric(chtr$Volume[1008:1259])
Arima with regressor
myarima1 =auto.arima(train.ts, xreg = vol.train)
myarima1
## Series: train.ts
## Regression with ARIMA(1,1,2) errors
##
## Coefficients:
## ar1 ma1 ma2 drift xreg
## 0.6887 -0.7243 -0.0539 0.2237 0
## s.e. 0.0991 0.1013 0.0344 0.0000 0
##
## sigma^2 estimated as 9.451: log likelihood=-2554.76
## AIC=5121.52 AICc=5121.61 BIC=5151
predict.myarima1 <- forecast(myarima1, xreg = vol.test)
acc.myarima1 <- accuracy(predict.myarima1, test.ts)
plot(predict.myarima1)

Arima without regressor
myarima2 =auto.arima(train.ts)
myarima2
## Series: train.ts
## ARIMA(0,1,3) with drift
##
## Coefficients:
## ma1 ma2 ma3 drift
## -0.0329 -0.0612 -0.1057 0.2249
## s.e. 0.0315 0.0322 0.0329 0.0775
##
## sigma^2 estimated as 9.452: log likelihood=-2555.34
## AIC=5120.69 AICc=5120.75 BIC=5145.26
predict.myarima2 <- forecast(myarima2)
acc.myarima2 <- accuracy(predict.myarima2, test.ts)
plot(predict.myarima2)

ETS without regressor
myets <- ets(train.ts, model = "ZZZ")
## Warning in ets(train.ts, model = "ZZZ"): I can't handle data with frequency
## greater than 24. Seasonality will be ignored. Try stlf() if you need
## seasonal forecasts.
ets.predict <- forecast(myets)
ets.acc <- accuracy(ets.predict, test.ts)
plot(ets.predict)

Compare
acc.myarima1
## ME RMSE MAE MPE MAPE
## Training set 0.001207996 3.065058 2.096424 -0.04298087 1.165657
## Test set -10.207768582 30.187306 23.275671 -3.36967048 6.763478
## MASE ACF1 Theil's U
## Training set 0.04442067 0.001908886 NA
## Test set 0.49318301 0.969077055 5.246303
acc.myarima2
## ME RMSE MAE MPE MAPE
## Training set -9.171029e-06 3.066837 2.105121 -0.03992221 1.172393
## Test set -1.082702e+01 30.451394 23.512305 -3.54804269 6.838512
## MASE ACF1 Theil's U
## Training set 0.04460493 0.002285429 NA
## Test set 0.49819699 0.969127781 5.300099
ets.acc
## ME RMSE MAE MPE MAPE
## Training set 0.01730157 3.087903 2.098406 -0.02292449 1.166998
## Test set -8.58837916 29.121723 22.416759 -2.90289217 6.499033
## MASE ACF1 Theil's U
## Training set 0.04446266 -0.0213918 NA
## Test set 0.47498371 0.9684166 5.038832