# Saturation in ARIMA (et al) models?

I've been learning X12-ARIMA by looking at data from a friend's service company, and wondering how to model the capacity of the company. That is, if the company is limited by a particular resource to only be able to handle 1,000 customers a week, how do I keep my ARIMA model from happily predicting 1,200 customers next summer?

(This isn't an issue with time series like GDP or stock prices, which don't have a hard cap.)

It doesn't seem that you can do anything in the optimization phase (which is simply choosing parameters), nor with exogenous variables (which drive the process, not react to it). Maybe changing the ARIMA model to a State Space representation would help? (Any recommendations on an R package to do this? I've looked at several and DLM's many matrices confuse me at this point.)

-
Do you mean ARIMA rather than X-12-ARIMA? The latter is a decomposition method not a forecasting method. –  Rob Hyndman Nov 3 '10 at 2:56
Yes, I mean ARIMA, though I've found using the ARIMA within the X12-ARIMA package to be more convenient than the various ARIMA packages in R. (The diagnostics, the ease of adding variables like AO2004.Jan, etc. The actual workflow is a bit more awkward, but it seems to be a win to me.) So, to your point, there's X12-ARIMA the package, and X12-ARIMA the method, and I didn't think to differentiate. –  Wayne Nov 4 '10 at 23:46

If Y is customer demand, than you are observing X=min(Y,1000) due to resource constraints. The actual Y could be larger, but you never observe it. So if you fit a time series model to X, you can set the forecasts to min(F,1000) where F is the forecast from the time series model. I don't think there is a need to do anything more fancy than that.

-
But doesn't the cap indicate a possibly strong heteroscedasticity (and skewness) in the residuals? That would suggest using a non-linear re-expression of the customer counts. –  whuber Nov 4 '10 at 15:50
@whuber. Yes. But non-linear re-expression of X is really a different problem. The "right" way to do this is to assume a latent process Y that is partially observed and try to model that using a non-linear state space model. But I figured that was more complicated than the OP would want. My suggestion will work ok provided the cap is not hit very often. Otherwise it will underestimate the forecast variance. –  Rob Hyndman Nov 4 '10 at 21:06
You're right, whuber's suggestion is currently beyond me. Unfortunately. Though, I am trying to understand State Space models as we speak and figure that's eventually my answer. (To account for a capacity cap and to provide for trend prediction.) Somehow, the SS concept seems simple but figuring out what the actual matrices accomplish... I've started watching a great SS class from Stanford on Youtube, and there are two or three R packages to choose from. –  Wayne Nov 4 '10 at 23:53
In terms of X=min(Y, 1000), that's a good first-cut. I've seen a "resistance" when nearing capacity, including something like bounces when the cap is hit, so perhaps something that adjusts the point forecast down as the upper prediction interval exceeds the cap could be a second-cut? –  Wayne Nov 4 '10 at 23:58