AutoRegressive Integrated Moving Average (ARIMA) is a popular statistical method for time series analysis. It is used to model and predict future values of a time series based on its past behavior. ARIMA is a combination of three different models: the AutoRegressive (AR) model, the Moving Average (MA) model, and the Integrated (I) model.

The AR model focuses on capturing the autocorrelation structure of the time series. It predicts future values based on the past values of the series. The MA model, on the other hand, captures the residuals, which are the differences between the actual value and the predicted value of the time series. The Integrated model is used to remove non-stationarity, which means making the time series more stationary in mean and variance.

To build an ARIMA model, we first have to determine the values of the p, d, and q parameters. The p parameter refers to the number of autoregressive terms, the d parameter refers to the order of differentiation, and the q parameter refers to the number of moving average terms. These parameters are used to control the complexity of the model and its ability to fit the data.

Once we have determined the parameters, we can use them to fit the ARIMA model to the time series data. We can then use the fitted model to make predictions about future values of the time series. We can also use statistical methods to evaluate the accuracy of the model and make adjustments if necessary.

One important thing to keep in mind when working with ARIMA is that the time series data must be stationary. This means that the mean and variance of the data must remain constant over time. If the time series is not stationary, we have to make it stationary before fitting the ARIMA model.

Example Code#

import pandas as pd
import statsmodels.api as sm

# Load time series data
data = pd.read_csv("time_series_data.csv")

# Fit ARIMA model
model = sm.tsa.ARIMA(data, order=(p,d,q))
result =

# Make predictions
predictions = result.predict(start=data.index[-1], end=data.index[-1]+10, dynamic=False)

# Plot the results
result.plot_predict(start=data.index[-1], end=data.index[-1]+10)


In conclusion, ARIMA is a powerful method for time series analysis that can be used to model and predict future values of time series data. It is a combination of three different models that work together to provide accurate predictions. By determining the correct values for the p, d, and q parameters, we can fit an ARIMA model that fits the data well and makes accurate predictions.

Where to Learn More#

We cover ARIMA in-depth in the following courses:

Time Series Analysis, Forecasting, and Machine Learning

Financial Engineering and Artificial Intelligence in Python