Phillip Middleton
2012-May-18  18:28 UTC
[R] Forecast package, auto.arima() convergence problem, and AIC/BIC extraction
Hi all, 
First:
I have a small line of code I'm applying to a variable which will be
placed in a matrix table for latex output of accuracy measures:
acc.aarima <-  signif(accuracy(forecast(auto.arima(tix_ts,
stepwise=FALSE), h=365)), digits=3).
The time series referred to is univariate (daily counts from 12-10-2010
until 5-8-2010 (so not 2 full periods of data)), and I'm working on some
initial model comparisons given what methods I can use (I will be adding
Bayesian forecasts eventually as well given the lack of history).
I am receiving an error w/r/t a convergence problem from auto.arima:
-------------------------------------------------------------------	
Warning messages:
	1: In auto.arima(y, max.P = 0, max.Q = 0, stationary = TRUE, ...) :
	Unable to fit final model using maximum likelihood. AIC value approximated
	2: In stats:::arima(x = x, order = order, seasonal = seasonal,
include.mean = include.mean,  :
	possible convergence problem: optim gave code=1
-------------------------------------------------------------------
This is telling me that the maxit setting has reached it's limit of
iterations in optim(), but how can I address this in auto.arima()?
Second: 
I wish also to include information criteria in the latex tables from each
of the resulting models. Some models (like ARIMA) keep AIC, BIC, and AICc
as list properties within 'x$model', however, others only list AIC.
These
are obviously calculated in, for example 'x.naive$model' and not list
objects. Can anyone recommend a way to extract all 3 bits of information
so that I can place this in the resulting model comparison table?
Below is some code for the framework of the output. It is currently 6
models (rows) and 6 columns (measures), I want to add 3 columns for AIC,
BIC, and AICc - but I need a way to get this information for the models
and placed into the matrix before LaTeX'ing it:
==============================================================================acc.naive
<- signif(accuracy(naive(tix_ts, h=365)), digits=3)
acc.snaive <-  signif(accuracy(snaive(tix_ts, h=365)), digits=3)	
acc.ets <-  signif(accuracy(forecast(ets(tix_ts), h=365)), digits=3)
acc.etsa <- signif(accuracy(forecast(ets(tix_ts,model="AAZ"),
h=365)),
digits=3) 
acc.aarima <-  signif(accuracy(forecast(auto.arima(tix_ts,
stepwise=FALSE), h=365)), digits=3)
acc.arfima <-  signif(accuracy(forecast(arfima(tix_ts), h=365)), digits=3)
x <- 
matrix(c(acc.naive,acc.snaive,acc.ets,acc.etsa,acc.aarima,acc.arfima),
ncol=6, byrow=TRUE)
rownames(x) = c("Naive Model [Arima(0,1,0)]","Naive (Seasonal)
Model
[Arima(0,0,0)(0,1,0)m]","ETS Model", "ETS
Model(A,A,N)","ARIMA (5,1,0)
Model","ARFIMA Model")
colnames(x) =
c("ME","RMSE","MAE","MPE","MAPE","MASE")
cell.format <- matrix(rep("", nrow(x) * ncol(x)), ncol = 6)
latex(x,title="MC-Tix-ModelAcc-Apr2012")
===============================================================================
Any thoughts would greatly be appreciated.
Phillip H. Middleton
