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