# Is there any rationale for rules of thumb for maxlag selection?

I understand that the optimum number of lags can be selected using some information criterion (e.g. Akaike (AIC), Schwartz Bayesian Information Criterion (SBIC) etc.). However, in order to select the optimal number of lags we also usually need to specify the maximum number of lags to be considered by the criteria which can affect the results.

For example, consider the example below where selecting different maximum lag to be considered produces widely different results:

install.packages("tsDyn")

require("tsDyn")
data(barry)

test1 <- lags.select(barry, lag.max = 12)
test1
Best AIC:  lag= 12
test2 <- lags.select(barry, lag.max = 24)
test2
Best AIC:  lag= 15
test3 <- lags.select(barry, lag.max = 6)
test3
Best AIC:  lag= 2


Now I actually know that there are some rules of thumb that can be used here. For example:

• A common one that I heard often is to set maximum lag to natural log of the number of periods $$\ln T$$ (see for example this thread on research gate).
• This cross-validated answer just recommends for cointegration 1 for yearly data 4 for quarterly data and so on for higher frequencies.

However, these answers never mention where these rules of thumb come from or give any rationale behind them.

I think this has to be ultimately based on sample size. For example, AIC is given as:

$${\text{AIC} =2k-2\ln({\hat {L}})}$$

where $$k$$ is the number of parameters estimated by the candidate model and $$\hat{L}$$ the maximum likelihood of the candidate model. Now as far as I understand the candidate models would still require approximately 30 observations per independent parameter (but this is again rule of thumb) as other parametric models giving us another potential rule of thumb $$\text{maxlag}= T/30$$, but again this is not rigorous just an alternative rule of thumb.

Hence my questions are:

1. Are the rules of thumb mentioned above based on/can be derived from some rigorous theory?
2. If the answer to above is negative is there any rigorous way of determining maximum number of lags to consider?

I never heard of rules of thumb for this, let alone theory rigorous ones, but it came to my mind that maybe you could calculate the ACF and use the largest significant lag as that max (or maybe some lags after it to guarantee).

For example, this simulated AR(3):

x = numeric()
x[1] = x[2] = x[3] = 0
for(i in 1:200){
x[i+3] = 0.5*x[i+2] + 0.4*x[i+1] + 0.3*x[i] + rnorm(n=1,sd=10)}

acf(x, 50)


Yields this ACF:

So we can choose lag.max as 19 or 19*1.1 for example.

• thanks, for the suggestion +1 just for that, but this again seems to be a rule of thumb rather than rigorous explanation. Commented Nov 12, 2020 at 23:50
• It's true, i think it is a little more rigorous because you're actually trying to look at the structure of the data (instead of only using T), but still not that rigorous. Commented Nov 13, 2020 at 0:27
• schwert has a formula which is in zivot's S+finmetrics book but I don't know the rationale. Another one I've seen is maximum lag but only if all the lags below it are significant also. I think that one makes sense from a rationale perspective. It might come from Hendry-LSE approach which is "start out high and work down". Commented Nov 13, 2020 at 0:59