TransWikia.com

How to calculate the ACF and PACF for time series

Cross Validated Asked by PeterBe on February 28, 2021

I just started with time series analysis and I would like to know whether there is a formular for calculating the autocorrelation function (ACF) and the partial autocorrelation function (PACF) for time series data. While there are forumlars for ‘normal’ data points and have not found any for time series. Maybe there is a special algorithm for doing that? I know that it is quite easy to calculate the ACF and PACF using e.g. R or Python. But how is this done? I’d appreciate every comment and will be quite thankful for your help.

2 Answers

Well if you mean how to estimate the ACF and PACF, here is how it's done:

1. ACF: In practice, a simple procedure is:

  1. Estimate the sample mean: $$bar{y} = frac{sum_{t=1}^{T} y_t}{T}$$
  2. Calculate the sample autocorrelation: $$hat{rho_j} = frac{sum_{t=j+1}^{T}(y_t - bar{y})(y_{t-j} - bar{y})}{sum_{t=1}^{T}(y_t - bar{y})^2}$$
  3. Estimate the variance. In many softwares (including R if you use the acf() function), it is approximated by a the variance of a white noise: $T^{-1}$. This leads to confidence intervals that are asymptotically consistent, but the smaller than the actual confidence interval in many cases (leading to a larger probability of Type 1 Error), so interpret theese with caution!

2. PACF: The PACF is a bit more complicated, because it tries to nullify the effects of other order correlations.

It is estimated via a set of OLS regressions: $$y_{t,j} = phi_{j,1} y_{t-1} + phi_{j,2} y_{t-2} + ... + phi_{j,j} y_{t-j} + epsilon_t$$ And the coefficient you want is the $phi_{j,j}$, estimated via OLS with the standard $hat{beta} = (X'X)^{-1}X'Y$ coefficients.

So, for example, if you would like the first order PACF: $$y_{t,1} = phi_{1,1} y_{t-1} + epsilon_t$$ and the coefficient you want is the $hat{phi_{1,1}}$ given by OLS: $hat{phi_{1,1}}=frac{Cov(y_{t-1},y_t)}{Var(y_t)}$ (assuming weak stationarity).

The second order PACF would be the $phi_{2,2}$ coefficient of: $$y_{t,2} = phi_{2,1} y_{t-1} + phi_{2,2} y_{t-2} + epsilon_t$$

And so on.

Good references on this are Enders (2004) and Hamilton (1994).

Correct answer by Caio C. on February 28, 2021

By definition, a ACF is $gamma_j := E[(Y_{t}-mu)(Y_{t-j}-mu)]$ (for covariance) and the is $rho_j := frac{gamma_j}{gamma_0}$ (for correlation). For a closed formula wrote in function of parameters and such, you need to specify the model that you have (if you say what's your model, i can tell you how to get that formula). For example, the ACF for an MA(1) is:

enter image description here

As for the PACF, you want the correlation after having controlled for the other lags in the model, so you need to use OLS, so PACF is defined as the $beta_j$ on $Y_t = beta_0 + beta_1Y_{t-1} + ... + beta_jY_{t-j} + u_t$.

For using the data of your time series to calculate the amostral counterpart of those statistics (without having to set a model as what i presented untill now), first you need to assume that your series is at least weakly stationary and ergodic, which in loose terms is like saying that the series "will not change its statistical properties with time", so that the values of the series that you observe can be meaningful to the process behind it. Obs: This is a more formal thing about statistics, ideally you should try to learn what exactly those things mean and how to see when you can make that assumption and when you can't, but it's best to ask that in another post.

Then, you can get $gamma_j$ and $rho_j$ by the formula present in the most upvoted answer in ACF and PACF Formula. And for the PACF, there is a sistem of equations that connect the ACF correlations to it, known as the Levinson recursion (which also is explained in that answer).

Answered by Ricardo Semião e Castro on February 28, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP