### Introduction

Suppose we have stationary univariate time series data but are uncertain about the order of the regressive relationship. You may wish to first use the sample autocorrelation function to help identify the general structure of the model. This can be achieved in GAUSS using the `acf`

functions.

## Sample Autocorrelations

The `acf`

function computes the sample autocorrelations for a single series. The function internally demeans the series, so there is no need to demean data before calling `acf`

.

The `acf`

function requires the following three inputs:

- y
- N x 1 data matrix.
- k
- Scalar denoting the maximum number of autocorrelations to compute. 0 < k < N.
- d
- Scalar denoting the order of differencing. If only computing the autocorrelations from the original time series, then
*d*equals 0.

### Compute the ACF

The example below will compute the sample autocorrelations for lags 1 through 10. It uses the `y_sim`

variable created in the tutorial simulating ARIMA models.

```
/*
** Find autocorrelations for 1 to 10 lags
*/
// Maximum number of autocorrelations
k = 10;
// Order of differencing
d = 0;
// Compute autocorrelations
a = acf(y_sim, k, d);
// Print autocorrelations
a_lab = seqa(1, 1, rows(a));
print "Lags"$~"ACF";
print ntos(a_lab~a, 4);
```

The above code produces the following output:

Lags ACF 1 0.3084 2 -0.5962 3 -0.5425 4 0.1774 5 0.5137 6 0.1171 7 -0.3486 8 -0.282 9 0.1205 10 0.2935

### Plot the ACF

As an alternative to the printed table, a bar graph visually presents the autocorrelation information. The ACF can be computed and graphed using the GAUSS function `plotACF`

. The `plotACF`

function takes the same inputs as the `acf`

function:

```
// Maximum number of autocorrelations
k = 10;
// Order of differencing
d = 0;
// Compute and plot the sample autocorrelations
plotACF(y_sim, k, d);
```

The above code will produce a graph similar to the following:

## Partial Autocorrelations

The previous example is easily extended to find the PACF for the same randomly generated data.

The `pacf`

function requires the following three inputs:

- y
- N x 1 data matrix.
- k
- Scalar denoting the maximum number of autocorrelations to compute. 0 < k < N.
- d
- Scalar denoting the order of differencing. If only computing the autocorrelations from the original time series, then
*d*equals 0.

### Compute the PACF

The example below will compute the partial autocorrelations for lags 1 through 10. It uses the `y_sim`

variable created in the tutorial simulating ARIMA models.

```
// Maximum number of autocorrelations
k = 10;
// Order of differencing
d = 0;
// Compute the partial autocorrelations
p = pacf(y_sim, k, d);
// Display autocorrelations
a_lab = seqa(1, 1, rows(p));
print "Lags"$~"PACF";
print ntos(a_lab~p, 4);
```

The above code produces the following output:

Lags PACF 1 0.3084 2 -0.7639 3 0.04611 4 0.0185 5 0.01686 6 -0.0424 7 -0.007356 8 -0.03321 9 -0.01139 10 0.01927

### Plot the PACF

The PACF can be computed and graphed using the GAUSS function `plotPACF`

. The `plotPACF`

function takes the same inputs as the `pacf`

function:

```
// Maximum number of autocorrelations
k = 10;
// Order of differencing
d = 0;
// Compute and plot the partial autocorrelation function
plotPACF(y_sim, k, d);
```

### Conclusion

You have learned how to compute and plot the ACF and PACF in GAUSS.

The next tutorial demonstrates estimating ARIMA models.