A time series is said to be “stationary” if it has no trend, exhibits constant variance over time, and has a constant autocorrelation structure over time.

One way to test whether a time series is stationary is to perform an **augmented Dickey-Fuller test**, which uses the following null and alternative hypotheses:

**H _{0}:** The time series is non-stationary. In other words, it has some time-dependent structure and does not have constant variance over time.

**H _{A}:** The time series is stationary.

If the p-value from the test is less than some significance level (e.g. α = .05), then we can reject the null hypothesis and conclude that the time series is stationary.

The following step-by-step example shows how to perform an augmented Dickey-Fuller test in Python for a given time series.

**Example: Augmented Dickey-Fuller Test in Python**

Suppose we have the following time series data in Python:

data = [3, 4, 4, 5, 6, 7, 6, 6, 7, 8, 9, 12, 10]

Before we perform an augmented Dickey-Fuller test on the data, we can create a quick plot to visualize the data:

import matplotlib.pyplot as plt plt.plot(data)

To perform an augmented Dickey-Fuller test, we can use the adfuller() function from the **statsmodels** library. First, we need to install statsmodels:

pip install statsmodels

Next, we can use the following code to perform the augmented Dickey-Fuller test:

from statsmodels.tsa.stattools import adfuller #perform augmented Dickey-Fuller test adfuller(data) (-0.9753836234744063, 0.7621363564361013, 0, 12, {'1%': -4.137829282407408, '5%': -3.1549724074074077, '10%': -2.7144769444444443}, 31.2466098872313)

Here’s how to interpret the most important values in the output:

- Test statistic:
**-0.97538** - P-value:
**0.7621**

Since the p-value is not less than .05, we fail to reject the null hypothesis.

This means the time series is non-stationary. In other words, it has some time-dependent structure and does not have constant variance over time.

**Additional Resources**

How to Plot a Time Series in Matplotlib

How to Plot Multiple Series from a Pandas DataFrame

How to Perform a Mann-Kendall Trend Test in Python