Monthly Boston armed robberies Jan.1966-Oct.1975

robberies = read.csv("monthly-boston-armed-robberies-j.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(robberies)
## 'data.frame':    118 obs. of  2 variables:
##  $ Month                                                                  : Factor w/ 118 levels "1966-01","1966-02",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Monthly.Boston.armed.robberies.Jan.1966.Oct.1975.Deutsch.and.Alt..1977.: int  41 39 50 40 43 38 44 35 39 35 ...
head(robberies)
##     Month
## 1 1966-01
## 2 1966-02
## 3 1966-03
## 4 1966-04
## 5 1966-05
## 6 1966-06
##   Monthly.Boston.armed.robberies.Jan.1966.Oct.1975.Deutsch.and.Alt..1977.
## 1                                                                      41
## 2                                                                      39
## 3                                                                      50
## 4                                                                      40
## 5                                                                      43
## 6                                                                      38
tail (robberies)
##       Month
## 113 1975-05
## 114 1975-06
## 115 1975-07
## 116 1975-08
## 117 1975-09
## 118 1975-10
##     Monthly.Boston.armed.robberies.Jan.1966.Oct.1975.Deutsch.and.Alt..1977.
## 113                                                                     302
## 114                                                                     316
## 115                                                                     398
## 116                                                                     394
## 117                                                                     431
## 118                                                                     431
names(robberies)[2]<-c("rob")

train = robberies[1:83,]
test = robberies[84:118,]

time series

ts.train = ts(train$rob,frequency=12,start=c(1966,1))
plot(ts.train)

ts.test = ts(test$rob, frequency=12, start=c(1972,12))
plot(ts.test)

Auto arima

myarima <- auto.arima(ts.train)
summary(myarima)
## Series: ts.train 
## ARIMA(0,1,2)(0,1,1)[12] 
## 
## Coefficients:
##           ma1      ma2     sma1
##       -0.3377  -0.2630  -0.7139
## s.e.   0.1289   0.1474   0.1593
## 
## sigma^2 estimated as 914.2:  log likelihood=-340.84
## AIC=689.68   AICc=690.29   BIC=698.67
## 
## Training set error measures:
##                    ME     RMSE      MAE        MPE     MAPE      MASE
## Training set 2.421363 27.16555 18.01694 -0.3934376 12.92257 0.3697118
##                     ACF1
## Training set -0.03953357
arima.predict <- forecast(myarima,h=6)
arima.acc <- accuracy(arima.predict, ts.test)
arima.acc
##                     ME     RMSE      MAE        MPE      MAPE      MASE
## Training set  2.421363 27.16555 18.01694 -0.3934376 12.922570 0.3697118
## Test set     10.950347 25.16137 22.86071  3.1408608  7.924141 0.4691071
##                     ACF1 Theil's U
## Training set -0.03953357        NA
## Test set     -0.23785142  0.572334
plot(arima.predict, ylab="Boston Armed Robberies")

ETS

myets <- ets(ts.train, model = "ZZZ")
plot(myets)

summary(myets)
## ETS(M,N,N) 
## 
## Call:
##  ets(y = ts.train, model = "ZZZ") 
## 
##   Smoothing parameters:
##     alpha = 0.6034 
## 
##   Initial states:
##     l = 39.1439 
## 
##   sigma:  0.2261
## 
##      AIC     AICc      BIC 
## 895.7677 896.0715 903.0243 
## 
## Training set error measures:
##                   ME     RMSE      MAE       MPE     MAPE      MASE
## Training set 4.48633 30.33862 21.73537 0.7094124 17.19946 0.4460148
##                    ACF1
## Training set 0.06966623
ets.predict <- forecast(myets,h=6)
ets.acc <- accuracy(ets.predict, ts.test)
ets.acc
##                    ME     RMSE      MAE       MPE     MAPE      MASE
## Training set  4.48633 30.33862 21.73537 0.7094124 17.19946 0.4460148
## Test set     26.17637 35.75196 31.11758 8.3564897 10.34091 0.6385399
##                     ACF1 Theil's U
## Training set  0.06966623        NA
## Test set     -0.27880832 0.7473962
plot(ets.predict,ylab="Armed Robberies")