public class CrossCorrelation extends Object implements Serializable, Cloneable
CrossCorrelation estimates the cross-correlation function of
two jointly stationary time series given a sample of n =
x.length observations
and
for t = 1,2, ..., n.
Let
![]()

The autocovariance function of
,
, is estimated by
![]()
maximum_lag. Note that
x returned by method
getVarianceX. The autocorrelation function
![]()
Note that
by definition.
Let
![]()
The cross-covariance function
is
estimated by

![]()
The standard errors of the sample cross-correlations may be optionally
computed according to the getStandardErrors method argument
stderrMethod. One method is based on a general
asymptotic expression for the variance of the sample cross-correlation
coefficient of two jointly stationary time series with independent,
identically distributed normal errors given by Bartlet (1978, page 352).
The theoretical formula is
![begin{array}{c}
{rm var} left { hat rho _{XY}(k) right } =
frac{1}{n-k}sumlimits_{i=-infty}^{infty}
left [right. {rho _X(i)}+rho _{XY}(i-k)rho _{XY}(i+k) \
-2rho _{XY}(k){rho _X(i)rho _{XY}(i+k)+rho _{XY}(-i)rho _Y(i+k)} \
+rho^2_{XY}(k){rho_X(i) + frac{1}{2}rho^2_X(i) +
frac{1}{2}rho^2_Y(i)} left. right ] end{array}](eqn_3286.png)
A second method evaluates Bartlett's formula under the additional assumption that the two series have no cross-correlation. The theoretical formula is
![]()
An important property of the cross-covariance coefficient is
for
. This result is used in the computation
of the standard error of the sample cross-correlation for lag
.
In general, the cross-covariance function is not symmetric about zero
so both positive and negative lags are of interest.
| Modifier and Type | Class and Description |
|---|---|
static class |
CrossCorrelation.NonPosVariancesException
The problem is ill-conditioned.
|
| Modifier and Type | Field and Description |
|---|---|
static int |
BARTLETTS_FORMULA
Indicates standard error computation using Bartlett's formula.
|
static int |
BARTLETTS_FORMULA_NOCC
Indicates standard error computation using Bartlett's formula
with the assumption of no cross-correlation.
|
| Constructor and Description |
|---|
CrossCorrelation(double[] x,
double[] y,
int maximum_lag)
Constructor to compute the sample cross-correlation
function of two stationary time series.
|
| Modifier and Type | Method and Description |
|---|---|
double[] |
getAutoCorrelationX()
Returns the autocorrelations of the time series
x. |
double[] |
getAutoCorrelationY()
Returns the autocorrelations of the time series
y. |
double[] |
getAutoCovarianceX()
Returns the autocovariances of the time series
x. |
double[] |
getAutoCovarianceY()
Returns the autocovariances of the time series
y. |
double[] |
getCrossCorrelation()
Returns the cross-correlations between the time series
x
and y. |
double[] |
getCrossCovariance()
Returns the cross-covariances between the time series
x
and y. |
double |
getMeanX()
Returns the mean of the time series
x. |
double |
getMeanY()
Returns the mean of the time series
y. |
double[] |
getStandardErrors(int stderrMethod)
Returns the standard errors of the cross-correlations between the
time series
x and y. |
double |
getVarianceX()
Returns the variance of time series
x. |
double |
getVarianceY()
Returns the variance of time series
y. |
void |
setMeanX(double mean)
Estimate of the mean of time series
x. |
void |
setMeanY(double mean)
Estimate of the mean of time series
y. |
public static final int BARTLETTS_FORMULA
public static final int BARTLETTS_FORMULA_NOCC
public CrossCorrelation(double[] x,
double[] y,
int maximum_lag)
x - A one-dimensional double
array containing the first stationary
time series.y - A one-dimensional double
array containing the second stationary
time series.maximum_lag - An int containing
the maximum lag of the cross-covariance and
cross-correlations to be computed.
maximum_lag must be greater
than or equal to 1 and less than the minimum
of the number of observations of x
and y.public double[] getAutoCorrelationX()
throws CrossCorrelation.NonPosVariancesException
x.double array of length maximum_lag +1
containing the autocorrelations of the time series x.
The 0-th element of this array is 1. The k-th element of this array
contains the autocorrelation of lag k where
k = 1, ..., maximum_lag.CrossCorrelation.NonPosVariancesExceptionpublic double[] getAutoCorrelationY()
throws CrossCorrelation.NonPosVariancesException
y.double array of length maximum_lag +1
containing the autocorrelations of the time series y.
The 0-th element of this array is 1. The k-th element of this array
contains the autocorrelation of lag k where
k = 1, ..., maximum_lag.CrossCorrelation.NonPosVariancesExceptionpublic double[] getAutoCovarianceX()
throws CrossCorrelation.NonPosVariancesException
x.double array of length maximum_lag +1
containing the variances and autocovariances of the time series x.
The 0-th element of the array contains the variance of the time series
x. The k-th element contains the autocovariance of lag k
where k = 1, ..., maximum_lag.CrossCorrelation.NonPosVariancesExceptionpublic double[] getAutoCovarianceY()
throws CrossCorrelation.NonPosVariancesException
y.double array of length maximum_lag +1
containing the variances and autocovariances of the time series y.
The 0-th element of the array contains the variance of the time series
x. The k-th element contains the autocovariance of lag k
where k = 1, ..., maximum_lag.CrossCorrelation.NonPosVariancesExceptionpublic double[] getCrossCorrelation()
throws CrossCorrelation.NonPosVariancesException
x
and y.double array of length 2 * maximum_lag +1
containing the cross-correlations between the time series x
and y. The cross-correlation between x and
y at lag k, where k = -maximum_lag
,..., 0, 1,...,maximum_lag, corresponds to output array indices
0, 1,..., (2*maximum_lag).CrossCorrelation.NonPosVariancesExceptionpublic double[] getCrossCovariance()
x
and y.double array of length 2 * maximum_lag +1
containing the cross-covariances between the time series x
and y. The cross-covariance between x and
y at lag k, where k = -maximum_lag
,..., 0, 1,...,maximum_lag, corresponds to output array indices
0, 1,..., (2*maximum_lag).public double getMeanX()
x.double containing the mean
of the time series x.public double getMeanY()
y.double containing the mean
of the time series y.public double[] getStandardErrors(int stderrMethod)
throws CrossCorrelation.NonPosVariancesException
x and y. Method of computation for
standard errors of the cross-correlation is determined by the
stderrMethod parameter. If stderrMethod
is set to BARTLETTS_FORMULA, Bartlett's formula is used to compute the
standard errors of cross-correlations. If
stderrMethod is set to BARTLETTS_FORMULA_NOCC, Bartlett's
formula is used to compute the standard errors of
cross-correlations, with the assumption of no cross-correlation.stderrMethod - An int specifying the
method to compute the standard errors of
cross-correlations between the time series x
and y.double array of length 2 * maximum_lag + 1
containing the standard errors of the cross-correlations between the
time series x and y. The standard error of
cross-correlations between x and y at lag
k, where k = -maximum_lag,..., 0, 1,...,
maximum_lag, corresponds to output array indices
0, 1,..., (2*maximum_lag).CrossCorrelation.NonPosVariancesExceptionpublic double getVarianceX()
throws CrossCorrelation.NonPosVariancesException
x.double containing the variance
of the time series x.CrossCorrelation.NonPosVariancesExceptionpublic double getVarianceY()
throws CrossCorrelation.NonPosVariancesException
y.double containing the variance
of the time series y.CrossCorrelation.NonPosVariancesExceptionpublic void setMeanX(double mean)
x.mean - A double containing the
estimate mean of the time series x.public void setMeanY(double mean)
y.mean - A double containing the
estimate mean of the time series y.Copyright © 1970-2015 Rogue Wave Software
Built June 18 2015.