Open In App

Autocorrelation plot using Matplotlib

Improve
Improve
Like Article
Like
Save
Share
Report

Autocorrelation plots are a commonly used tool for checking randomness in a data set. This randomness is ascertained by computing autocorrelations for data values at varying time lags.

Characteristics Of Autocorrelation Plot : 

  • It measures a set of current values against a set of past values and finds whether they correlate.
  • It is the correlation of one-time series data to another time series data which has a time lag.
  • It varies from +1 to -1.
  • An autocorrelation of +1 indicates that if time series one increases in value the time series 2 also increases in proportion to the change in time series 1.
  • An autocorrelation of -1 indicates that if time series one increases in value the time series 2 decreases in proportion to the change in time series 1.

Application of Autocorrelation:  

  • Pattern recognition.
  • Signal detection.
  • Signal processing.
  • Estimating pitch.
  • Technical analysis of stocks.

Plotting the Autocorrelation Plot

To plot the Autocorrelation Plot we can use matplotlib and plot it easily by using matplotlib.pyplot.acorr() function. 

Syntax: matplotlib.pyplot.acorr(x, *, data=None, **kwargs)
Parameters: 

  • ‘x’ : This parameter is a sequence of scalar.
  • ‘detrend’ : This parameter is an optional parameter. Its default value is mlab.detrend_none.
  • ‘normed’ : This parameter is also an optional parameter and contains the bool value. Its default value is True.
  • ‘usevlines’ : This parameter is also an optional parameter and contains the bool value. Its default value is True.
  • ‘maxlags’ : This parameter is also an optional parameter and contains the integer value. Its default value is 10.
  • ‘linestyle’ : This parameter is also an optional parameter and used for plotting the data points, only when usevlines is False.
  • ‘marker’ : This parameter is also an optional parameter and contains the string. Its default value is ‘o’.

Returns: (lags, c, line, b) 
Where:

  • lags are a length 2`maxlags+1 lag vector.
  • c is the 2`maxlags+1 auto correlation vector.
  • line is a Line2D instance returned by plot.
  • b is the x-axis.

Example 1:  

Python3




# Importing the libraries.
import matplotlib.pyplot as plt
import numpy as np
   
# Data for which we plot Autocorrelation.
data = np.array([12.0, 24.0, 7., 20.0,
                 7.0, 22.0, 18.0,22.0,
                 6.0, 7.0, 20.0, 13.0,
                 8.0, 5.0, 8])
   
# Adding plot title.
plt.title("Autocorrelation Plot")
 
# Providing x-axis name.
plt.xlabel("Lags")
 
# Plotting the Autocorrelation plot.
plt.acorr(data, maxlags = 10)
 
# Displaying the plot.
print("The Autocorrelation plot for the data is:")
plt.grid(True)
 
plt.show()


Output: 

Example 2: 

Python3




# Importing the libraries.
import matplotlib.pyplot as plt
import numpy as np
   
# Setting up the rondom seed for
# fixing the random state.
np.random.seed(42)
   
# Creating some random data.
data = np.random.randn(25)
   
# Adding plot title.
plt.title("Autocorrelation Plot")
 
# Providing x-axis name.
plt.xlabel("Lags")
 
# Plotting the Autocorrelation plot.
plt.acorr(data, maxlags = 20)
 
# Displaying the plot.
print("The Autocorrelation plot for the data is:")
plt.grid(True)
 
plt.show()


Output: 

 



Last Updated : 06 Aug, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads