ACF
Computes the sample autocorrelation function of a stationary time series.
Required Arguments
X — Vector of length NOBS containing the time series. (Input)
MAXLAG — Maximum lag of autocovariances, autocorrelations, and standard errors of autocorrelations to be computed. (Input)
MAXLAG must be greater than or equal to one and less than NOBS.
AC — Vector of length MAXLAG + 1 containing the autocorrelations of the time series X. (Output)
AC(0) = 1. AC(k) contains the autocorrelation of lag k where k = 1, …, MAXLAG.
Optional Arguments
NOBS — Number of observations in the time series X. (Input)
NOBS must be greater than or equal to two.
Default: NOBS = size (X,1).
IPRINT — Printing option. (Input)
Default: IPRINT = 0.
IPRINT |
Action |
0 |
No printing is performed. |
1 |
Prints the mean and variance. |
2 |
Prints the mean, variance, and autocovariances. |
3 |
Prints the mean, variance, autocovariances, autocorrelations, and standard errors of autocorrelations. |
ISEOPT — Option for computing standard errors of autocorrelations. (Input)
Default: ISEOPT = 0.
ISEOPT |
Action |
0 |
No standard errors of autocorrelations are computed. |
1 |
Computes standard errors of autocorrelations using Bartlett’s formula. |
2 |
Computes standard errors of autocorrelations using Moran’s formula. |
IMEAN — Option for computing the mean. (Input)
Default: IMEAN = 1.
IMEAN |
Action |
0 |
XMEAN is user specified. |
1 |
XMEAN is set to the arithmetic mean of X. |
XMEAN — Estimate of the mean of time series X. (Input, if IMEAN = 0; output,
if IMEAN = 1)
ACV — Vector of length MAXLAG + 1 containing the variance and autocovariances of the time series X. (Output)
ACV(0) contains the variance of the series X. ACV(k) contains the autocovariance of lag k where k = 1, …, MAXLAG.
SEAC — Vector of length MAXLAG containing the standard errors of the autocorrelations of the time series X. (Output)
The standard error of AC(k) is SEAC(k) where k = 1, …, MAXLAG. If ISEOPT = 0, then SEAC may be dimensioned of length 1.
FORTRAN 90 Interface
Generic: CALL ACF (X, MAXLAG, AC [, …])
Specific: The specific interface names are S_ACF and D_ACF.
FORTRAN 77 Interface
Single: CALL ACF (NOBS, X, IPRINT, ISEOPT, IMEAN, XMEAN, MAXLAG, ACV, AC, SEAC)
Double: The double precision name is DACF.
Description
Routine ACF estimates the autocorrelation function of a stationary time series given a sample of n = NOBS observations {Xt} for t = 1, 2, …, n.
Let
be the estimate of the mean μ of the time series {Xt} where
The autocovariance function σ(k) is estimated by
where K = MAXLAG. Note that
is an estimate of the sample variance. The autocorrelation function ρ(k) is estimated by
Note that
by definition.
The standard errors of the sample autocorrelations may be optionally computed according to argument ISEOPT. 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 ρ(k) are replaced by their estimates
for ∣k∣ ≤ K, and the limits of summation are bounded because of the assumption that ρ(k) = 0 for all k such that ∣k∣ > K.
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.
Example
Consider the Wolfer Sunspot Data (Anderson 1971, page 660) consisting of the number of sunspots observed each year from 1749 through 1924. The data set for this example consists of the number of sunspots observed from 1770 through 1869. Routine ACF computes the estimated autocovariances, estimated autocorrelations, and estimated standard errors of the autocorrelations.
USE GDATA_INT
USE ACF_INT
IMPLICIT NONE
INTEGER IPRINT, MAXLAG, NOBS
PARAMETER (IPRINT=3, MAXLAG=20, NOBS=100)
!
INTEGER IMEAN, ISEOPT, NCOL, NROW
REAL AC(0:MAXLAG), ACV(0:MAXLAG), RDATA(176,2), &
SEAC(MAXLAG), X(NOBS), XMEAN
!
EQUIVALENCE (X(1), RDATA(22,2))
! Wolfer Sunspot Data for
! years 1770 through 1869
CALL GDATA (2, RDATA, NROW, NCOL)
! Compute standard errors
ISEOPT = 1
! Center on arithmetic mean
! USE DEFAULT IMEAN = 1
! Compute sample ACF
CALL ACF (X, MAXLAG, AC, IPRINT=IPRINT, ISEOPT=ISEOPT)
!
END
Output
Output from ACF/A2F
Mean = 46.976
Variance = 1382.9
Lag ACV AC SEAC
0 1382.9 1.00000
1 1115.0 0.80629 0.03478
2 592.0 0.42809 0.09624
3 95.3 0.06891 0.15678
4 -236.0 -0.17062 0.20577
5 -370.0 -0.26756 0.23096
6 -294.3 -0.21278 0.22899
7 -60.4 -0.04371 0.20862
8 227.6 0.16460 0.17848
9 458.4 0.33146 0.14573
10 567.8 0.41061 0.13441
11 546.1 0.39491 0.15068
12 398.9 0.28848 0.17435
13 197.8 0.14300 0.19062
14 26.9 0.01945 0.19549
15 -77.3 -0.05588 0.19589
16 -143.7 -0.10394 0.19629
17 -202.0 -0.14610 0.19602
18 -245.4 -0.17743 0.19872
19 -230.8 -0.16691 0.20536
20 -142.9 -0.10332 0.20939
Figure 1, Sample Autocorrelation Function