Forecasting overview
Forecasting is a technique where you analyze historical data in order to make an informed prediction about future trends. For example, you might analyze historical sales data from several store locations in order to predict future sales at those locations. In BigQuery ML, you perform forecasting on time series data.
You can perform forecasting in the following ways:
- By using the
AI.FORECASTfunction with the built-in TimesFM model. Use this approach when you need to forecast future values for a single variable, and don't require the ability to fine-tune the model. This approach doesn't require you to create and manage a model.
- By using the
ML.FORECASTfunction with theARIMA_PLUSmodel. Use this approach when you need to run an ARIMA-based modeling pipeline and decompose the time series into multiple components in order to explain the results. This approach requires you to create and manage a model.
- By using the ML.FORECASTfunction with theARIMA_PLUS_XREGmodel. Use this approach when you need to forecast future values for multiple variables. This approach requires you to create and manage a model.
ARIMA_PLUS and ARIMA_PLUS_XREG time series models aren't actually single
models, but rather a time series modeling pipeline that includes multiple
models and algorithms. For more information, see
Time series modeling pipeline.
In addition to forecasting, you can use ARIMA_PLUS and ARIMA_PLUS_XREG
models for anomaly detection. For more information, see the following
documents:
- Anomaly detection overview
- Perform anomaly detection with a multivariate time-series forecasting model
You can use the 
AI.EVALUATE function
to evaluate forecasted data against actual values from historical data.
Compare the TimesFM and ARIMA models
Use the following table to determine whether to use AI.FORECAST with the
built-in TimesFM model or ML.FORECAST with an ARIMA_PLUS or
ARIMA_PLUS_XREG model for your use case:
| Feature | AI.FORECASTwith a TimesFM model | ML.FORECASTwith anARIMA_PLUSorARIMA_PLUS_XREGmodel | 
|---|---|---|
| Model type | Transformer-based foundation model. | Statistical model that uses the ARIMAalgorithm for the
      trend component, and a variety of other algorithms for non-trend
      components. For more information, see
      Time series modeling pipeline. | 
| Training required | No, the TimesFM model is pre-trained. | Yes, one ARIMA_PLUSorARIMA_PLUS_XREGmodel is trained for each time series. | 
| SQL ease of use | Very high. Requires a single function call. | High. Requires a CREATE MODELstatement and a
      function call. | 
| Data history used | Uses 512 time points. | Uses all time points in the training data, but can be customized to use fewer time points. | 
| Accuracy | Very high. Outperforms a number of other models. For more information, see A Decoder-only Foundation Model for Time-series Forecasting. | Very high, on par with the TimesFM model. | 
| Customization | Low. | High. The CREATE MODELstatement
      offers arguments that let you tune many model settings, such as the
      following:
 | 
| Supports covariates | No. | Yes, when using the ARIMA_PLUS_XREGmodel. | 
| Explainability | Low. | High. You can use the ML.EXPLAIN_FORECASTfunction
      to inspect model components. | 
| Best use cases | 
 | 
 | 
Recommended knowledge
By using the default settings of BigQuery ML's statements and functions, you can create and use a forecasting model even without much ML knowledge. However, having basic knowledge about ML development, and forecasting models in particular, helps you optimize both your data and your model to deliver better results. We recommend using the following resources to develop familiarity with ML techniques and processes: