6
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ You should use time series methods if you want CIs to go with your predictions. Your model is cast in the "filtering" framework rather than the ARIMA framework. Look up x12 for some pointers here. $\endgroup$ – probabilityislogic Jun 14 '14 at 1:09
1
$\begingroup$

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.