public class AutoCorrelation extends Object implements Serializable, Cloneable
AutoCorrelation
estimates the autocorrelation function
of a stationary time series given a sample of n observations
for
.
Let
be the estimate of the mean of the time series where The autocovariance function is estimated bywhere K = maximum_lag
. Note that is an estimate of the sample variance. The
autocorrelation function is estimated by
Note that by definition.
The standard errors of sample autocorrelations may be optionally
computed according to the getStandardErrors method argument
stderrMethod
. One method (Bartlett 1946) is based on a
general asymptotic expression for the variance of the sample
autocorrelation coefficient of a stationary time series with
independent, identically distributed normal errors. The theoretical
formula is
where assumes is unknown. For computational purposes, the autocorrelations are replaced by their estimates for , and the limits of summation are bounded because of the assumption that for all such that .
A second method (Moran 1947) utilizes an exact formula for the variance of the sample autocorrelation coefficient of a random process with independent, identically distributed normal errors. The theoretical formula is
where is assumed to be equal to zero. Note that this formula does not depend on the autocorrelation function.
The method getPartialAutoCorrelations
estimates the
partial autocorrelations of the stationary time series given K =
maximum_lag
sample autocorrelations for k=0,1,...,K. Consider the AR(k)
process defined by
This procedure is sensitive to rounding error and should not be used if the parameters are near the nonstationarity boundary. A possible alternative would be to estimate for successive AR(k) models using least or maximum likelihood. Based on the hypothesis that the true process is AR(p), Box and Jenkins (1976, page 65) note
See Box and Jenkins (1976, pages 8284) for more information concerning the partial autocorrelation function.
Modifier and Type  Class and Description 

static class 
AutoCorrelation.NonPosVariancesException
The problem is illconditioned.

Modifier and Type  Field and Description 

static int 
BARTLETTS_FORMULA
Indicates standard error computation using Bartlett's formula.

static int 
MORANS_FORMULA
Indicates standard error computation using Moran's formula.

Constructor and Description 

AutoCorrelation(double[] x,
int maximum_lag)
Constructor to compute the sample autocorrelation function of a
stationary time series.

Modifier and Type  Method and Description 

double[] 
getAutoCorrelations()
Returns the autocorrelations of the time series
x . 
double[] 
getAutoCovariances()
Returns the variance and autocovariances of the time series
x . 
double 
getMean()
Returns the mean of the time series
x . 
int 
getNumberOfThreads()
Returns the number of
java.lang.Thread instances used for
parallel processing. 
double[] 
getPartialAutoCorrelations()
Returns the sample partial autocorrelation function of the stationary
time series
x . 
double[] 
getStandardErrors(int stderrMethod)
Returns the standard errors of the autocorrelations of the time series
x . 
double 
getVariance()
Returns the variance of the time series
x . 
void 
setMean(double mean)
Estimate mean of the time series
x . 
void 
setNumberOfThreads(int numberOfThreads)
Sets the number of
java.lang.Thread instances to be used for
parallel processing. 
public static final int BARTLETTS_FORMULA
public static final int MORANS_FORMULA
public AutoCorrelation(double[] x, int maximum_lag)
x
 a onedimensional double
array containing the
stationary time seriesmaximum_lag
 an int
containing the maximum lag of
autocovariance, autocorrelations, and standard
errors of autocorrelations to be computed.
maximum_lag
must be greater than or
equal to 1 and less than the number of observations
in x
public double[] getAutoCorrelations()
x
.double
array of length maximum_lag
+1 containing the autocorrelations of the time series
x
. The 0th element of this array is 1. The
kth element of this array contains the autocorrelation
of lag where k = 1, ...,
maximum_lag
.public double[] getAutoCovariances() throws AutoCorrelation.NonPosVariancesException
x
.double
array of length maximum_lag
+1 containing the variances and autocovariances of the
time series x
. The 0th element of the array
contains the variance of the time series x
. The
kth element contains the autocovariance of lag k where
k = 1, ..., maximum_lag
.AutoCorrelation.NonPosVariancesException
 is thrown if the problem is
illconditionedpublic double getMean()
x
.double
containing the meanpublic int getNumberOfThreads()
java.lang.Thread
instances used for
parallel processing.int
containing the number of
java.lang.Thread
instances used for parallel processing.public double[] getPartialAutoCorrelations()
x
.double
array of length maximum_lag
containing the partial autocorrelations of the time series
x
.public double[] getStandardErrors(int stderrMethod)
x
. Method of computation for standard errors of the
autocorrelation is chosen by the stderrMethod
parameter. If
stderrMethod
is set to BARTLETTS_FORMULA
,
Bartlett's formula is used to compute the standard errors of
autocorrelations. If stderrMethod
is set to
MORANS_FORMULA
, Moran's formula is used to compute the
standard errors of autocorrelations.stderrMethod
 an int
specifying the method to
compute the standard errors of autocorrelations
of the time series x
double
array of length maximum_lag
containing the standard errors of the autocorrelations of the
time series x
public double getVariance()
x
.double
containing the variance of the time series
x
public void setMean(double mean)
x
.mean
 a double
containing the estimate mean of
the time series x
.public void setNumberOfThreads(int numberOfThreads)
java.lang.Thread
instances to be used for
parallel processing.numberOfThreads
 an int
specifying the number of
java.lang.Thread
instances to be used for parallel
processing.
Default: numberOfThreads
= 1.
Copyright © 19702015 Rogue Wave Software
Built October 13 2015.