Autocorrelation Analysis#

A good heuristic for assessing convergence of samplings is the integrated autocorrelation time. emcee includes tools for computing this and the autocorrelation function itself. More details can be found in Autocorrelation analysis & convergence.

emcee.autocorr.integrated_time(x, c=5, tol=50, quiet=False)#

Estimate the integrated autocorrelation time of a time series.

This estimate uses the iterative procedure described on page 16 of Sokal’s notes to determine a reasonable window size.

Parameters:
  • x – The time series. If multidimensional, set the time axis using the axis keyword argument and the function will be computed for every other axis.

  • c (Optional[float]) – The step size for the window search. (default: 5)

  • tol (Optional[float]) – The minimum number of autocorrelation times needed to trust the estimate. (default: 50)

  • quiet (Optional[bool]) – This argument controls the behavior when the chain is too short. If True, give a warning instead of raising an AutocorrError. (default: False)

Returns:

An estimate of the integrated autocorrelation time of

the time series x computed along the axis axis.

Return type:

float or array

Raises
AutocorrError: If the autocorrelation time can’t be reliably estimated

from the chain and quiet is False. This normally means that the chain is too short.

emcee.autocorr.function_1d(x)#

Estimate the normalized autocorrelation function of a 1-D series

Parameters:

x – The series as a 1-D numpy array.

Returns:

The autocorrelation function of the time series.

Return type:

array