library(readxl)
library(fpp2)
## Loading required package: ggplot2
## Loading required package: forecast
## Warning: package 'forecast' was built under R version 3.5.2
## Loading required package: fma
## Loading required package: expsmooth
## I choose the data of monthly att returns
att.return <- data.frame(read_excel("monthly-returns-for-att-jan-1961.xls"))
training_data <-att.return[1:78,]
test_data <- att.return[79:84,]
train <- ts(training_data, start = c(1961,1),frequency = 12)
test <- ts(test_data, start = c(1967,7),frequency = 12)
str(test)
##  Time-Series [1:6, 1:2] from 1968 to 1968: -79056000 -76377600 -73699200 -71107200 -68428800 ...
##  - attr(*, "dimnames")=List of 2
##   ..$ : NULL
##   ..$ : chr [1:2] "Month" "Monthly.returns.for.AT.T..Jan.1961.through.Dec..1967"
fit.arima <- auto.arima(train[,2])
checkresiduals(fit.arima)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,0,0) with zero mean
## Q* = 17.823, df = 15.6, p-value = 0.3089
## 
## Model df: 0.   Total lags used: 15.6
summary(fit.arima)
## Series: train[, 2] 
## ARIMA(0,0,0) with zero mean 
## 
## sigma^2 estimated as 0.001535:  log likelihood=142.01
## AIC=-282.03   AICc=-281.97   BIC=-279.67
## 
## Training set error measures:
##                       ME       RMSE        MAE MPE MAPE      MASE
## Training set 0.004560128 0.03917893 0.03110859 100  100 0.7372313
##                     ACF1
## Training set -0.01761066
arima_fc <- forecast(fit.arima, h =  6)
round(accuracy(arima_fc, test[,2]),5)
##                    ME    RMSE     MAE MPE MAPE    MASE     ACF1 Theil's U
## Training set  0.00456 0.03918 0.03111 100  100 0.73723 -0.01761        NA
## Test set     -0.01606 0.03800 0.02576 100  100 0.61048 -0.01392   0.53372
fit.ets <- ets(train[,2])
checkresiduals(fit.ets)

## 
##  Ljung-Box test
## 
## data:  Residuals from ETS(A,N,N)
## Q* = 17.824, df = 13.6, p-value = 0.1938
## 
## Model df: 2.   Total lags used: 15.6
summary(fit.ets)
## ETS(A,N,N) 
## 
## Call:
##  ets(y = train[, 2]) 
## 
##   Smoothing parameters:
##     alpha = 1e-04 
## 
##   Initial states:
##     l = 0.0046 
## 
##   sigma:  0.0394
## 
##       AIC      AICc       BIC 
## -160.6129 -160.2886 -153.5428 
## 
## Training set error measures:
##                         ME       RMSE        MAE  MPE MAPE      MASE
## Training set -1.207961e-05 0.03891459 0.03122814 -Inf  Inf 0.7400644
##                     ACF1
## Training set -0.01762067
ets_fc <- forecast(fit.ets, h = 6)
round(accuracy(ets_fc,test[,2]),5)
##                    ME    RMSE     MAE      MPE     MAPE    MASE     ACF1
## Training set -0.00001 0.03891 0.03123     -Inf      Inf 0.74006 -0.01762
## Test set     -0.02062 0.04014 0.02649 57.76949 86.39559 0.62779 -0.01392
##              Theil's U
## Training set        NA
## Test set       0.50711
 I think ETS has lower AICc, but Arima has perform better in terms of accuracy. What do you think?