# pacf¶

## Purpose¶

Computes sample partial autocorrelations.

## Format¶

rk = pacf(y, k, d)
Parameters:
• y (Nx1 vector) – data

• k (scalar) – maximum number of partial autocorrelations to compute. $$0 < k < N$$.

• d (scalar) – order of differencing. If only computing the autocorrelations from the original time series, then d equals 0.

Returns:

rk (Kx1 vector) – sample partial autocorrelations.

## Examples¶

### A sample partial autocorrelation function example.¶

// Create short time-series column vector
x = { 12.92,
14.28,
13.31,
13.34,
12.71,
13.08,
11.86,
9.000,
8.190,
7.970,
8.350,
8.200,
8.120,
8.390,
8.660  };

// Maximum number of lags
k = 4;

// Order of differencing
d = 1;

// Calculate and print result of partial autocorrelation function
rk = pacf(x, k, d);

print rk;

  0.15488076
-0.035928234
-0.17063786
0.089875096


Plot the PACF results with plotBar(). Passing in 0 as the first input tells GAUSS to create a sequential series from 1 to the number of elements in rk as the x-tick labels.

plotBar(0, rk);


You can add labels for x-axis and y-axis interactively on the Graphics Page by selecting View > Graph Settings from the main menu. The plot is shown below:

### Calculate the partial autocorrelation function (PACF) and plot the results for “beef_prices” data.¶

// Clear out variables in GAUSS workspace
new;

// Create file name with full path
file = getGAUSSHome("examples/beef_prices.csv");

// Import dataset starting with row 2 and column 2

// Max lags
k = 10;

// Order of differencing
d = 0;

// Call pacf function
beef_pacf = pacf(beef, k, d);


Create a time series plot and sample partial autocorrelation (PACF) plot based on the beef and beef_pacf variables created above:

// Time series plot
// Declare a plotControl structure
struct plotControl ctl;
ctl = plotGetDefaults("xy");

// Make a 1 by 2 plot with the time series
// plot in the [1,1] location
plotLayout(1, 2, 1);

// Labels and format settings for 'beef' matrix plot
plotSetYLabel(&ctl, "cents/lb");
plotSetXLabel(&ctl, "Year");
plotSetXTicLabel(&ctl, "YYYY");
plotSetXTicInterval(&ctl, 120, 199501);

// Time plot with plotTS function
plotTS(ctl, 1992, 12, beef);

// Making a 1 by 2 plot, the second plot is the PACF plot
plotLayout(1, 2, 2);

// ACF plot
// Fill 'ctl' structure with defaults settings for bar plots
ctl = plotGetDefaults("bar");

// Setting labels and format based on 'beef_acf' matrix
plotSetYLabel(&ctl, "PACF");
plotSetXLabel(&ctl, "Lag");
plotSetXTicInterval(&ctl, 1, 5);

// PACF plot with plotBar function
plotBar(ctl, seqa(1, 1, k), beef_pacf);


You can use ‘Add Text’ to type ‘Beef Prices’ as the title in the graphics window. The plot is:

### Compare ACF and PACF for “cow” data.¶

new;
cls;

file = getGAUSSHome("examples/cows.fmt");

// Import '.fmt' data

// Max lags
k = 10;

// Order of differencing
d = 0;

// call pacf function
data_pacf = pacf(data, k, d);

// call acf function
data_acf = acf(data, k, d);


In this example, we compute the ACF and PACF for cow’s temperature and save them in data_acf and data_pacf.

The following code plot autocorrelation (ACF) and sample partial autocorrelation (PACF):

// Compare ACF and PACF for cow's temperature data
// Create sequential numbers
years = seqa(1, 1, rows(data));

// Declare a plotControl structure
struct plotControl cow_ctl;
cow_ctl = plotGetDefaults("xy");

// Set plot title for top graph
plotSetTitle(&cow_ctl, "Cow Temperature");

// Labels and format setting based on 'data_acf' matrix
plotSetYLabel(&cow_ctl, "Temp");
plotSetXLabel(&cow_ctl, "Year");

// Making a 2 by 1 plot, the first plot is the time plot
plotLayout(2, 1, 1);

// Time plot
plotXY(cow_ctl, years, data );

// Change type of plotControl struct
cow_ctl = plotgetdefaults("bar");

// Setting labels and format based on 'data_pacf' matrix
plotSetYLabel(&cow_ctl, "ACF/PACF");
plotSetXLabel(&cow_ctl, "Lag");

// Place the 2nd plot in the second cell of a 2 by 1 grid
plotLayout(2, 1, );

// ACF plot
plotBar(cow_ctl, seqa(1, 1, k), data_acf);

// PACF plot

// Clear 2 by 1 plot layout for next plots
plotClearLayout();


The plot produced by the code above should look like this:

## Source¶

tsutil.src

Functions acf()