Leveraging the R forecast package auto.arima functions ability to generate the best ARIMA model(model with the smallest AICc) for a time series. I leverage auto.arima ability and applies it directly to the time series without removing the stationarity effect to the Nigerian Deposit Money Banks Monthly Loan to Deposit Ratio (Jan. 2007 - April 2017). Previous analysis of the same dataset has shown the dataset is not stationary and would require one order differentiation.

Data Source:

Nigerian Deposit Money Banks Monthly Loan to Deposit Ratio (Jan. 2007 - April 2017) Central Bank of Nigeria Statistics Database

Previous analysis of the same dataset:

Using auto.arima to Generate the Arima Model

Allowing auto.arima generate the best model, one gets the ARIMA(0,1,0)(1,0,1)[12]. As stated in the text Forecasting principle auto.arima uses a short cut in other to speed up its computation to determine the best model which may not necessarily be the model with the smallest AICc. Like in the case of this model auto.arima shows that the model has both a non seasonal part (0,1,0) and a seasonal part (1,0,1) with 12 as the seasonal value.

#auto.arima model
arimafit <- auto.arima(loan_to_deposit)
summary(arimafit)
Series: loan_to_deposit 
ARIMA(0,1,0)(1,0,1)[12]                    

Coefficients:
NaNs produced
         sar1    sma1
      -0.4186  0.3838
s.e.      NaN     NaN

sigma^2 estimated as 19.98:  log likelihood=-358.7
AIC=723.41   AICc=723.61   BIC=731.84

Training set error measures:
                    ME     RMSE      MAE        MPE     MAPE      MASE       ACF1
Training set 0.1117394 4.451392 2.693037 -0.1663461 4.527217 0.2186715 -0.1409733
#plot fitted model and original time series
plot(loan_to_deposit, main= "Time Series with ARIMA(0,1,0)(1,0,1)[12] Model ", xlab="Year",ylab="loan-to-deposit ratio")
lines(fitted(arimafit), col="blue")
legend("bottomleft",lty=1, col=c("black","blue"), 
       c("Data","ARIMA(0,1,0)(1,0,1)[12]"),cex=0.80)

arimafit2 <- Arima(loan_to_deposit,order=c(0,1,0))
plot(loan_to_deposit, main= "Time Series with ARIMA(0,1,0) Model ", xlab="Year", ylab="Loan-to-Deposit Ratio")
lines(fitted(arimafit), col="blue")
lines(fitted(arimafit2), col="red")
legend("bottomleft",lty=1, col=c("black","blue","red"), 
       c("Data","ARIMA(0,1,0)(1,0,1)[12]","ARIMA(0,1,0)"),cex=0.80)

ARIMA(O,1,0)(1,0,1)[12] indicates that the non seasonal part of the model is a random walk model (0,1,0) while the seasonal part of the model (1,0,1) and is a monthly data [12]

plot(residuals(arimafit), main= "Residual:ARIMA(0,1,0)(1,0,1)[12]  and ARIMA(0,1,0) Model ", ylab="Residual", xlab="Year")
lines(residuals(arimafit2), col="red")
legend("bottomleft",lty=1, col=c("black","red"), 
       c("ARIMA(0,1,0)(1,0,1)[12]","ARIMA(0,1,0)"),cex=0.80)

Using the residual plot above to compare the outcome of this model with the previous drift model shows that the ARIMA(0,1,0)(1,0,1)[12] is very similar to the ARIMA (0,1,0) with very similar residuals.

tsdisplay(residuals(arimafit))

Box.test(residuals(arimafit), lag=36, fitdf=6, type="Ljung")

    Box-Ljung test

data:  residuals(arimafit)
X-squared = 28.703, df = 30, p-value = 0.5332

The residuals shows that there are significant spikes in lag 12 for both ACF and PACF. With the p-value of 0.5332 it also shows that the model fails the Box-Ljung test. Other ARIMA models - ARIMA(0,1,0) and ARIMA(2,1,1) the result of disabling fast computation in auto.arima also provides models that fail the Box-Ljung test.

When the fast computation used in arriving the best model is disabled in auto.arima, the best model generated is ARIMA(2,1,1) indicating no seasonality part.

arimafit3 <- auto.arima(loan_to_deposit,stepwise=FALSE)
summary(arimafit3)
Series: loan_to_deposit 
ARIMA(2,1,1)                    

Coefficients:
          ar1      ar2     ma1
      -0.7574  -0.0351  0.6233
s.e.   0.6346   0.1532  0.6262

sigma^2 estimated as 19.5:  log likelihood=-357.22
AIC=722.44   AICc=722.78   BIC=733.69

Training set error measures:
                    ME     RMSE      MAE        MPE     MAPE      MASE         ACF1
Training set 0.1214725 4.397839 2.687355 -0.1711618 4.541871 0.2182101 -0.002261327
tsdisplay(residuals(arimafit3))

Comparing the three ARIMA models - ARIMA(0,1,0)(1,0,1)[12], ARIMA(0,1,0) and ARIMA(2,1,1), the ARIMA(0,1,0) has the smallest AICc value previously generated. Since the the three models have the same one order difference they can be compared using AICc. Based on this criteria ARIMA(0,1,0) would be a best model of the three.

#AICc values for the different Models
x<- arimafit$aicc
y<- arimafit2$aicc
z<- arimafit3$aicc
df1 <- data.frame( models = c("ARIMA(0,1,0)(1,0,1)[12]","ARIMA(0,1,0)","ARIMA(2,1,1)"),AICc=c(x,y,z))
knitr::kable(df1, caption = "AICs of the Different Models")
models AICc
ARIMA(0,1,0)(1,0,1)[12] 723.6083
ARIMA(0,1,0) 719.6052
ARIMA(2,1,1) 722.7817

Compared using RMSE ARIMA(2,1,0) produces the lowest RMSE

# ARIMA(0,1,0)(1,0,1)[12]
accuracy(arimafit)
                    ME     RMSE      MAE        MPE     MAPE      MASE       ACF1
Training set 0.1117394 4.451392 2.693037 -0.1663461 4.527217 0.2186715 -0.1409733
# ARIMA(0,1,0)
accuracy(arimafit2)
                    ME     RMSE      MAE        MPE     MAPE      MASE       ACF1
Training set 0.1111027 4.454762 2.674006 -0.1614636 4.494982 0.2171262 -0.1453001
# ARIMA(2,1,1)
accuracy(arimafit3)
                    ME     RMSE      MAE        MPE     MAPE      MASE         ACF1
Training set 0.1214725 4.397839 2.687355 -0.1711618 4.541871 0.2182101 -0.002261327

Residual Plot of the Three Models

plot(residuals(arimafit), main= "Residuals-(0,1,0)(1,0,1)[12], ARIMA(0,1,0) & ARIMA(2,1,1) Models ", xlab="Year", ylab="Residual")
lines(residuals(arimafit2), col="red")
lines(residuals(arimafit3), col="blue")
legend("bottomleft",lty=1, col=c("black","red","blue"), 
       c("ARIMA(0,1,0)(1,0,1)[12]","ARIMA(0,1,0)","ARIMA(2,1,1)"),cex=0.80)

Observing the residual plots the three models looks very similar.

LS0tDQp0aXRsZTogIlNlYXNvbmFsIE5vbiBTdGF0aW9uYXJ5IFRpbWUgIFNlcmllcyBBUklNQSBNb2RlbGluZyINCmF1dGhvcjogIkFkZWJheW8gQWRlcmliaWdiZSINCm91dHB1dDoNCiAgaHRtbF9ub3RlYm9vazogZGVmYXVsdA0KICBodG1sX2RvY3VtZW50OiBkZWZhdWx0DQogIGdpdGh1Yl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQoNCkxldmVyYWdpbmcgdGhlIFIgZm9yZWNhc3QgcGFja2FnZSBhdXRvLmFyaW1hIGZ1bmN0aW9ucyBhYmlsaXR5IHRvIGdlbmVyYXRlIHRoZSBiZXN0IEFSSU1BIG1vZGVsKG1vZGVsIHdpdGggdGhlIHNtYWxsZXN0IEFJQ2MpIGZvciBhIHRpbWUgc2VyaWVzLiBJIGxldmVyYWdlIGF1dG8uYXJpbWEgYWJpbGl0eSBhbmQgYXBwbGllcyBpdCBkaXJlY3RseSB0byB0aGUgdGltZSBzZXJpZXMgd2l0aG91dCAgcmVtb3ZpbmcgdGhlIHN0YXRpb25hcml0eSBlZmZlY3QgdG8gdGhlIE5pZ2VyaWFuIERlcG9zaXQgTW9uZXkgQmFua3MgTW9udGhseSBMb2FuIHRvIERlcG9zaXQgUmF0aW8gKEphbi4gMjAwNyAtIEFwcmlsIDIwMTcpLiBQcmV2aW91cyBhbmFseXNpcyBvZiB0aGUgc2FtZSBkYXRhc2V0IGhhcyBzaG93biB0aGUgZGF0YXNldCBpcyBub3Qgc3RhdGlvbmFyeSBhbmQgd291bGQgcmVxdWlyZSBvbmUgb3JkZXIgZGlmZmVyZW50aWF0aW9uLg0KDQojIyMjIERhdGEgU291cmNlOg0KTmlnZXJpYW4gRGVwb3NpdCBNb25leSBCYW5rcyBNb250aGx5IExvYW4gdG8gRGVwb3NpdCBSYXRpbyAoSmFuLiAyMDA3IC0gQXByaWwgMjAxNykgDQpbQ2VudHJhbCBCYW5rIG9mIE5pZ2VyaWEgU3RhdGlzdGljcyBEYXRhYmFzZV0oaHR0cDovL3N0YXRpc3RpY3MuY2JuLmdvdi5uZy9jYm4tb25saW5lc3RhdHMvRGF0YUJyb3dzZXIuYXNweCkNCiAgDQoNCiMjIyMgUHJldmlvdXMgYW5hbHlzaXMgb2YgdGhlIHNhbWUgZGF0YXNldDogICAgIA0KDQoqICBbSW52ZXN0aWdhdGluZyAgVGltZSBTdGF0aW9uYXJpdHldKGh0dHA6Ly9ycHVicy5jb20vV29ya3MxMjMvc3RhdGlvbmFyaXR5KSAgDQoqICBbQXBwbHlpbmcgQVJJTUEgTW9kZWxpbmcgdG8gVGltZSBTZXJpZXNdKGh0dHA6Ly9ycHVicy5jb20vV29ya3MxMjMvQVJJTUFfRE1CKSAgICANCg0KIyMjI1VzaW5nIGF1dG8uYXJpbWEgdG8gR2VuZXJhdGUgdGhlIEFyaW1hIE1vZGVsDQpBbGxvd2luZyBhdXRvLmFyaW1hIGdlbmVyYXRlIHRoZSBiZXN0IG1vZGVsLCBvbmUgZ2V0cyB0aGUgQVJJTUEoMCwxLDApKDEsMCwxKVsxMl0uIA0KQXMgc3RhdGVkIGluIHRoZSB0ZXh0IFtGb3JlY2FzdGluZyBwcmluY2lwbGVdKGh0dHBzOi8vd3d3Lm90ZXh0cy5vcmcvZnBwLzgvOSkgYXV0by5hcmltYSB1c2VzIGEgc2hvcnQgY3V0IGluIG90aGVyIHRvIHNwZWVkIHVwIGl0cyBjb21wdXRhdGlvbiB0byBkZXRlcm1pbmUgdGhlIGJlc3QgbW9kZWwgd2hpY2ggbWF5IG5vdCBuZWNlc3NhcmlseSBiZSB0aGUgbW9kZWwgd2l0aCB0aGUgc21hbGxlc3QgQUlDYy4gTGlrZSBpbiB0aGUgY2FzZSBvZiB0aGlzIG1vZGVsIGF1dG8uYXJpbWEgc2hvd3MgdGhhdCB0aGUgbW9kZWwgaGFzIGJvdGggYSBub24gc2Vhc29uYWwgcGFydCAoMCwxLDApIGFuZCBhIHNlYXNvbmFsIHBhcnQgKDEsMCwxKSB3aXRoIDEyIGFzIHRoZSBzZWFzb25hbCB2YWx1ZS4NCg0KYGBge3IgIGluY2x1ZGU9RkFMU0V9DQpsaWJyYXJ5KCJmb3JlY2FzdCIpDQpsaWJyYXJ5KCJmcHAiKQ0KDQojZGF0YSBzb3VyY2UNCmRtYl9kYXRhIDwtIHJlYWQuY3N2KCJETUJfZGF0YS5jc3YiKQ0KDQojY29udmVydCBkYXRhIHRvIHRpbWUgc2VyaWVzDQp0c19kYXRhIDwtIHRzKGRtYl9kYXRhWywoMzo1KV0sZnJlcXVlbmN5PTEyLHN0YXJ0PWMoMjAwNywxKSkNCg0KI2xvYW5fdG9fZGVwb3NpdA0KbG9hbl90b19kZXBvc2l0IDwtIHRzX2RhdGFbLDFdDQoNCmBgYA0KDQoNCg0KDQpgYGB7cn0NCiNhdXRvLmFyaW1hIG1vZGVsDQphcmltYWZpdCA8LSBhdXRvLmFyaW1hKGxvYW5fdG9fZGVwb3NpdCkNCnN1bW1hcnkoYXJpbWFmaXQpDQpgYGANCg0KDQpgYGB7cn0NCiNwbG90IGZpdHRlZCBtb2RlbCBhbmQgb3JpZ2luYWwgdGltZSBzZXJpZXMNCnBsb3QobG9hbl90b19kZXBvc2l0LCBtYWluPSAiVGltZSBTZXJpZXMgd2l0aCBBUklNQSgwLDEsMCkoMSwwLDEpWzEyXSBNb2RlbCAiLCB4bGFiPSJZZWFyIix5bGFiPSJsb2FuLXRvLWRlcG9zaXQgcmF0aW8iKQ0KbGluZXMoZml0dGVkKGFyaW1hZml0KSwgY29sPSJibHVlIikNCmxlZ2VuZCgiYm90dG9tbGVmdCIsbHR5PTEsIGNvbD1jKCJibGFjayIsImJsdWUiKSwgDQogICAgICAgYygiRGF0YSIsIkFSSU1BKDAsMSwwKSgxLDAsMSlbMTJdIiksY2V4PTAuODApDQoNCmFyaW1hZml0MiA8LSBBcmltYShsb2FuX3RvX2RlcG9zaXQsb3JkZXI9YygwLDEsMCkpDQpwbG90KGxvYW5fdG9fZGVwb3NpdCwgbWFpbj0gIlRpbWUgU2VyaWVzIHdpdGggQVJJTUEoMCwxLDApIE1vZGVsICIsIHhsYWI9IlllYXIiLCB5bGFiPSJMb2FuLXRvLURlcG9zaXQgUmF0aW8iKQ0KbGluZXMoZml0dGVkKGFyaW1hZml0KSwgY29sPSJibHVlIikNCmxpbmVzKGZpdHRlZChhcmltYWZpdDIpLCBjb2w9InJlZCIpDQpsZWdlbmQoImJvdHRvbWxlZnQiLGx0eT0xLCBjb2w9YygiYmxhY2siLCJibHVlIiwicmVkIiksIA0KICAgICAgIGMoIkRhdGEiLCJBUklNQSgwLDEsMCkoMSwwLDEpWzEyXSIsIkFSSU1BKDAsMSwwKSIpLGNleD0wLjgwKQ0KYGBgDQpBUklNQShPLDEsMCkoMSwwLDEpWzEyXSBpbmRpY2F0ZXMgdGhhdCB0aGUgbm9uIHNlYXNvbmFsIHBhcnQgb2YgdGhlIG1vZGVsIGlzIGEgcmFuZG9tIHdhbGsgbW9kZWwgKDAsMSwwKSB3aGlsZSB0aGUgc2Vhc29uYWwgcGFydCBvZiB0aGUgbW9kZWwgKDEsMCwxKSBhbmQgaXMgYSBtb250aGx5IGRhdGEgWzEyXQ0KDQpgYGB7cn0NCnBsb3QocmVzaWR1YWxzKGFyaW1hZml0KSwgbWFpbj0gIlJlc2lkdWFsOkFSSU1BKDAsMSwwKSgxLDAsMSlbMTJdICBhbmQgQVJJTUEoMCwxLDApIE1vZGVsICIsIHlsYWI9IlJlc2lkdWFsIiwgeGxhYj0iWWVhciIpDQpsaW5lcyhyZXNpZHVhbHMoYXJpbWFmaXQyKSwgY29sPSJyZWQiKQ0KbGVnZW5kKCJib3R0b21sZWZ0IixsdHk9MSwgY29sPWMoImJsYWNrIiwicmVkIiksIA0KICAgICAgIGMoIkFSSU1BKDAsMSwwKSgxLDAsMSlbMTJdIiwiQVJJTUEoMCwxLDApIiksY2V4PTAuODApDQpgYGANClVzaW5nIHRoZSByZXNpZHVhbCBwbG90IGFib3ZlIHRvIGNvbXBhcmUgdGhlIG91dGNvbWUgb2YgdGhpcyBtb2RlbCB3aXRoIHRoZSBwcmV2aW91cyBkcmlmdCBtb2RlbCBzaG93cyAgdGhhdCB0aGUgQVJJTUEoMCwxLDApKDEsMCwxKVsxMl0gaXMgdmVyeSBzaW1pbGFyIHRvIHRoZSBBUklNQSAoMCwxLDApIHdpdGggdmVyeSBzaW1pbGFyIHJlc2lkdWFscy4gIA0KDQoNCmBgYHtyfQ0KdHNkaXNwbGF5KHJlc2lkdWFscyhhcmltYWZpdCkpDQpCb3gudGVzdChyZXNpZHVhbHMoYXJpbWFmaXQpLCBsYWc9MzYsIGZpdGRmPTYsIHR5cGU9IkxqdW5nIikNCmBgYA0KVGhlIHJlc2lkdWFscyBzaG93cyB0aGF0IHRoZXJlIGFyZSBzaWduaWZpY2FudCBzcGlrZXMgaW4gbGFnIDEyIGZvciBib3RoIEFDRiBhbmQgUEFDRi4gV2l0aCB0aGUgcC12YWx1ZSBvZiAwLjUzMzIgaXQgYWxzbyBzaG93cyB0aGF0IHRoZSBtb2RlbCBmYWlscyB0aGUgQm94LUxqdW5nIHRlc3QuIE90aGVyIEFSSU1BIG1vZGVscyAtIEFSSU1BKDAsMSwwKSBhbmQgQVJJTUEoMiwxLDEpIHRoZSByZXN1bHQgb2YgZGlzYWJsaW5nIGZhc3QgY29tcHV0YXRpb24gaW4gYXV0by5hcmltYSBhbHNvIHByb3ZpZGVzIG1vZGVscyB0aGF0IGZhaWwgdGhlIEJveC1ManVuZyB0ZXN0Lg0KDQpXaGVuIHRoZSBmYXN0IGNvbXB1dGF0aW9uIHVzZWQgaW4gYXJyaXZpbmcgdGhlIGJlc3QgbW9kZWwgaXMgZGlzYWJsZWQgaW4gYXV0by5hcmltYSwgdGhlIGJlc3QgbW9kZWwgZ2VuZXJhdGVkIGlzIEFSSU1BKDIsMSwxKSBpbmRpY2F0aW5nIG5vIHNlYXNvbmFsaXR5IHBhcnQuIA0KYGBge3J9DQphcmltYWZpdDMgPC0gYXV0by5hcmltYShsb2FuX3RvX2RlcG9zaXQsc3RlcHdpc2U9RkFMU0UpDQpzdW1tYXJ5KGFyaW1hZml0MykNCnRzZGlzcGxheShyZXNpZHVhbHMoYXJpbWFmaXQzKSkNCmBgYA0KDQpDb21wYXJpbmcgdGhlIHRocmVlIEFSSU1BIG1vZGVscyAtIEFSSU1BKDAsMSwwKSgxLDAsMSlbMTJdLCBBUklNQSgwLDEsMCkgYW5kIEFSSU1BKDIsMSwxKSwgdGhlIEFSSU1BKDAsMSwwKSBoYXMgdGhlIHNtYWxsZXN0IEFJQ2MgdmFsdWUgcHJldmlvdXNseSBnZW5lcmF0ZWQuIFNpbmNlIHRoZSB0aGUgdGhyZWUgbW9kZWxzIGhhdmUgdGhlIHNhbWUgIG9uZSBvcmRlciBkaWZmZXJlbmNlIHRoZXkgY2FuIGJlIGNvbXBhcmVkIHVzaW5nIEFJQ2MuIEJhc2VkIG9uIHRoaXMgY3JpdGVyaWEgQVJJTUEoMCwxLDApIHdvdWxkIGJlIGEgYmVzdCBtb2RlbCBvZiB0aGUgdGhyZWUuDQpgYGB7ciByZXN1bHRzPSJhc2lzIn0NCiNBSUNjIHZhbHVlcyBmb3IgdGhlIGRpZmZlcmVudCBNb2RlbHMNCng8LSBhcmltYWZpdCRhaWNjDQp5PC0gYXJpbWFmaXQyJGFpY2MNCno8LSBhcmltYWZpdDMkYWljYw0KDQpkZjEgPC0gZGF0YS5mcmFtZSggbW9kZWxzID0gYygiQVJJTUEoMCwxLDApKDEsMCwxKVsxMl0iLCJBUklNQSgwLDEsMCkiLCJBUklNQSgyLDEsMSkiKSxBSUNjPWMoeCx5LHopKQ0KDQprbml0cjo6a2FibGUoZGYxLCBjYXB0aW9uID0gIkFJQ3Mgb2YgdGhlIERpZmZlcmVudCBNb2RlbHMiKQ0KYGBgDQpDb21wYXJlZCB1c2luZyBSTVNFIEFSSU1BKDIsMSwwKSBwcm9kdWNlcyB0aGUgbG93ZXN0IFJNU0UNCmBgYHtyfQ0KIyBBUklNQSgwLDEsMCkoMSwwLDEpWzEyXQ0KYWNjdXJhY3koYXJpbWFmaXQpDQoNCiMgQVJJTUEoMCwxLDApDQphY2N1cmFjeShhcmltYWZpdDIpDQoNCiMgQVJJTUEoMiwxLDEpDQphY2N1cmFjeShhcmltYWZpdDMpDQoNCg0KYGBgDQoNCiMjIyMgUmVzaWR1YWwgUGxvdCBvZiB0aGUgVGhyZWUgTW9kZWxzIA0KYGBge3J9DQpwbG90KHJlc2lkdWFscyhhcmltYWZpdCksIG1haW49ICJSZXNpZHVhbHMtKDAsMSwwKSgxLDAsMSlbMTJdLCBBUklNQSgwLDEsMCkgJiBBUklNQSgyLDEsMSkgTW9kZWxzICIsIHhsYWI9IlllYXIiLCB5bGFiPSJSZXNpZHVhbCIpDQpsaW5lcyhyZXNpZHVhbHMoYXJpbWFmaXQyKSwgY29sPSJyZWQiKQ0KbGluZXMocmVzaWR1YWxzKGFyaW1hZml0MyksIGNvbD0iYmx1ZSIpDQpsZWdlbmQoImJvdHRvbWxlZnQiLGx0eT0xLCBjb2w9YygiYmxhY2siLCJyZWQiLCJibHVlIiksIA0KICAgICAgIGMoIkFSSU1BKDAsMSwwKSgxLDAsMSlbMTJdIiwiQVJJTUEoMCwxLDApIiwiQVJJTUEoMiwxLDEpIiksY2V4PTAuODApDQpgYGANCk9ic2VydmluZyB0aGUgcmVzaWR1YWwgcGxvdHMgdGhlIHRocmVlIG1vZGVscyBsb29rcyB2ZXJ5IHNpbWlsYXIuDQo=