When forecasting sequential data is it best to use auto-regressive models or build a more traditional n x p dataset with features? I'm familiar with the use of auto-regressive models when it comes to forecasting a single vector of time-series data. Is anybody familiar with a more traditional modeling approach, i.e. - creating sets of features such as indicators for day of the week, time of the day, day of the month, holiday, and then running a model such as a regression or random forest on this? Are there pros/cons to each of these methods?
I'm basically tasked with forecasting hourly requests based on A LOT of historical data. There are strong intraday trends as well as pretty strong weekly trends. So far we have been using the average of the past 4 data points of the same hour in the same day (so for this Friday at 4 PM we would average the last 4 Friday's counts at 4 PM) and this works surprisingly well. Is it even worth building a more sophisticated model? Would I have to continually retrain it between every hour or would a few months worth of this hourly data be enough to forecast for several days before retraining? I'm sure I left some questions out so any suggestions and literature you could point me to would be much appreciated.
 A: I've yet to find a satisfactory line of research in the literature that handles nonparametric time-series forecasting. What follows is my duct-tape approach.
The pervasive question in performing nonparametric time-series analysis is: What do I really care about? Most problems are made more complex by requiring confidence intervals or made simpler with a classifier for "is this going up?"
The generalized approach to time-series forecasting is to build feature matrix of lagged values, possibly perform a log-transform if your values are strictly positive, then carry out temporal cross-validation on nonparametric regression models.
With this approach there are multiple options for forecasting over a horizon. You can recurse on your model on it's outputs or you can use a multioutput regression model. There are multiple options for generating confidence intervals over that horizon. You can cross-validate a standard error then multiply it by the forecast horizon or you can use a nonparametric multioutput model that produces confidence intervals associated each element of a fixed length horizon.
If you are using kernel methods, it's possibly to weight features by their recency. If you are using a method that uses some form of gradient descent, you can use the previously found parameters as a warm-start then training after observing new data-points. This rapidly speeds up convergence. Online methods can be quite successful for some problems, while offering nice complexity guarantees and never becoming stale.
Regarding:
Is it even worth building a more sophisticated model?
Don't fix what isn't broken.
Would I have to continually retrain it between every hour or would a few months worth of this hourly data be enough to forecast for several days before retraining?
See above for some approaches to try.
