Getting Started With SAS Time Series Forecasting
SAS has been around for a long time in the forecasting space. PROC FORECAST, PROC ARIMA, and more recently PROC TIMESERIES are the main tools most people actually use. PROC AUTOREGRESS is what I reach for when I need ARMA or ARIMA models. It handles missing values better than you might expect, which matters more than people think. Most beginners jump straight into PROC REG, which is a mistake. Time series data has autocorrelation in the residuals if you treat it like regular cross-sectional data. Your standard errors will be wrong and your confidence intervals will be garbage. Run a Durbin-Watson test or just look at the ACF of your residuals first. If there is serial correlation, you need an ARIMA approach instead. PROC ARIMA requires an IDENTIFY step first. This is where you model the AR and MA structures. The output gives you ACF and PACF plots that you use to determine order. Beginners often skip this and just pick p and d and q values from thin air. It works sometimes. Usually it does not. I spent three days once debugging a model because I assumed an ACF that died out meant AR(1), when it was actually an MA(2) process. The PACF cut off after lag 2. That difference between AR and MA identification shows up constantly and usually trips people up.
For seasonal data, which is most business data, you need seasonal ARIMA. PROC ARIMA handles this with the SEASONAL statement. I recall a project with monthly sales data showing clear yearly seasonality. The initial model had residuals that still showed seasonal patterns at lag 12. The fix was adding a seasonal MA term at lag 12, not just the seasonal difference. People tend to add the seasonal difference and stop there. That is often not enough. Another tool worth mentioning is PROC TIMESERIES. It is newer and has a different syntax but produces similar results for many standard models. It includes built-in model selection via the INFO criteria. The catch is it is less flexible for custom model structures compared to PROC ARIMA. If your forecasting problem is straightforward, PROC TIMESERIES will save you time. If you need something unusual, stick with PROC ARIMA or PROC AUTOREGRESS. When I need forecasts with external regressors, I use PROC AUTOREGRESS with the MODEL statement. This is basically dynamic regression. I had a case recently where I was forecasting electricity demand with temperature as a covariate. The temperature variable had nonlinear effects. I had to transform it into polynomial terms and interactions before the model picked up the relationship properly. Adding raw temperature did nothing useful. The coefficients were tiny and statistically insignificant until I centered and squared the variable.
Here is the part nobody tells you about model validation. Splitting your data into train and test is fine, but for short time series, you lose too much data. Cross-validation in the time series context is not the same as k-fold from machine learning. PROC ARIMA has the VALIDATE statement, which does holdout validation automatically. Use it. Also, the OUTPUT statement lets you save forecast intervals directly to a dataset. This saves you from manually calculating prediction bands later. SAS documentation is thorough but dry. The SAS/OR User's Guide section on time series is the best reference. It is available online through the SAS support site. The examples in the documentation are simplified compared to real-world data, so do not expect them to cover every edge case you will encounter. One common pitfall: stationarity. If your data is nonstationary, differencing it once is not always enough. I worked with a dataset of quarterly GDP figures where even after first differencing, the ACF decayed very slowly. Second differencing was needed. You can check the Kwiatkowski-Phillips-Schmidt-Shin test output in PROC ARIMA to confirm. Do not just assume one difference fixes everything.
Get the Full Details

The other thing that catches people is overfitting. More parameters do not mean better forecasts. I have seen models with five AR terms and four MA terms that performed worse than a simple AR(1). The in-sample fit looked impressive, but out-of-sample forecasts were terrible. Use AIC or BIC to compare models. Lower is better. Do not chase the highest R-squared on training data. If you are working with large datasets, PROC ARIMA can be slow because it uses iterative maximum likelihood estimation. PROC TIMESERIES is generally faster for standard models. For very large panels with thousands of series, you might want to look into PROC MODEL or even a custom DATA step approach, though that requires more work. The trade-off is speed versus flexibility. Forecast accuracy metrics in SAS come out in the MODEL evaluation output. Mean absolute percentage error, root mean square error, and mean absolute error are all standard. I usually focus on RMSE for comparison because it penalizes large errors more, which matters in most business contexts. A few bad forecasts can be costly even if the average looks acceptable.
There is also PROC FCST for simple exponential smoothing methods. It is older and less commonly used now, but it handles basic trend and seasonal patterns without requiring you to identify ARIMA orders. If you just need a quick baseline forecast, it is worth running. Compare it against your ARIMA results. If the simple model performs similarly, the extra complexity may not be justified. Data preparation is where most time actually gets spent. Missing values, outliers, structural breaks, and irregular observation frequencies all cause problems. PROC TIMESERIES has a MISSING option that can interpolate or drop gaps, but the default behavior is not always what you want. I recommend inspecting the data visually first using PROC SGPLOT with a time series plot. A single outlier can distort the entire model if you do not handle it before fitting. I had one case with daily transaction data where a system outage created a three-day gap. PROC ARIMA treated the gap as missing and shifted all subsequent timestamps, which broke the model. The workaround was to create a complete time series variable using PROC TIMESERIES with the INTERVAL=DAILY and MISSING=ZERO options, filling the gap with zeros before passing it to the forecasting procedure.
For those interested in more advanced state space approaches, PROC UCM (unobserved components model) is another SAS tool. It decomposes series into trend, seasonal, and cyclical components explicitly. It is useful when you need to interpret the components, not just produce forecasts. The syntax is different from PROC ARIMA, so there is a learning curve. But for certain applications, especially government or macroeconomic forecasting, it is the standard approach. The bottom line is that SAS provides solid tools for time series forecasting, but it requires understanding the assumptions behind each procedure. Pick the right tool for your problem. Validate your models. Check your residuals. And do not trust the first model you fit without examining whether it actually satisfies the requirements of the data you are working with.