Documentation

Confidence Intervals for Sample Autocorrelation

This example shows how to create confidence intervals for the autocorrelation sequence of a white noise process. Create a realization of a white noise process 1000 samples in length. Compute the sample autocorrelation to lag 20. Plot the sample autocorrelation along with the approximate 95%-confidence intervals for a white noise process.

Create the white noise random vector. Set the random number generator to the default settings for reproducible results. Obtain the normalized sampled autocorrelation to lag 20.

rng default
x = randn(1000,1);
[xc,lags] = xcorr(x,20,'coeff');

Create the lower and upper 95% confidence bounds for the $N(0,1/N)$ distribution. For a 95%-confidence interval, the critical value is 1.96. The standard deviation is the square root of $1/N$, where $N$ is the length of the input vector.

The confidence interval is

$$0\pm{1.96\over{\sqrt{1000}}}.$$

lconf = -1.96/sqrt(length(x));
upconf = 1.96/sqrt(length(x));

Plot the sample autocorrelation along with the 95%-confidence interval.

stem(lags,xc,'filled')
ylim([lconf-0.03 1.05])
hold on
plot(lags,lconf*ones(size(lags)),'r','linewidth',2)
plot(lags,upconf*ones(size(lags)),'r','linewidth',2)
title('Sample Autocorrelation with 95% Confidence Intervals')

You see in the above figure that the only autocorrelation value outside of the 95%-confidence interval occurs at lag 0 as expected for a white noise process. Based on this result, you can conclude that the data are a realization of a white noise process.

Was this topic helpful?