I do have a question related to selecting the appropriate lag length in a VAR model with two variables. Following functions are used to return the Portmanteau test and a test for dynamic stability (the last two rows):

serial.test(VARx, lags.pt=maximum_lag, type="PT.asymptotic"),
roots(VARx)[[1]], # should be <1 to be considered as "stable"
roots(VARx)[[2]], # should be <1 to be considered as "stable"

Output:

[[1]]

    Portmanteau Test (asymptotic)

data:  Residuals of VAR object V.1
Chi-squared = 20, df = 20, p-value = 0.5

[1] 2.36
[2] 0.34


[[2]]

    Portmanteau Test (asymptotic)

data:  Residuals of VAR object V.2
Chi-squared = 20, df = 20, p-value = 0.3

[1] 1.95
[2] 1.95


[[3]]

    Portmanteau Test (asymptotic)

data:  Residuals of VAR object V.3
Chi-squared = 20, df = 10, p-value = 0.2

[1] 2.22
[2] 2.22


[[4]]

    Portmanteau Test (asymptotic)

data:  Residuals of VAR object V.4
Chi-squared = 20, df = 8, p-value = 0.03

[1] 2.4
[2] 2.4

According to the AIC selection criteria, Lag 4 was proposed. However, when we control for serial independence with the Portmanteau test, we find that only using Lag 3 (V.3) would remove the serial autocorrelation, as p-values > 0.1, i.e. 0.2. Okay, Lag 3 for now.

Now I want to further control for "dynamic stability", as proposed here. According to the source, the inverse roots should be <1. The problem is that there is no pair of variables in my results that both have a value <1.

What to do in this case?

dput:

structure(list(inc = c(348254.76, 599118, 736389, 825597, 896271, 963128, 1039418, 1113432, 1202722, 1264546, 1304516, 1364283.5, 1408522.5, 1475240.5, 1537742.5, 1584864.5, 1632268.5, 1680166.5, 1724325.5, 1753535.5, 1797481.5, 1858200.5, 1909682.5, 2024244.5, 2104077.5, 2209230.5, 2296961.5, 2407398.5, 2621805.5, 2916844.5, 3025239), out = c(7, 29, 40, 46, 59, 66, 73, 83, 94, 100, 108, 111, 115, 121, 130, 136, 141, 144, 151, 155, 161, 170, 177, 189, 196, 199, 203, 215, 221, 233, 518)), .Names = c("inc", "out"), row.names = c(NA, -31L), class = "data.frame")

migrated from stackoverflow.com Oct 10 '16 at 1:34

This question came from our site for professional and enthusiast programmers.

  • Can you dput() your data to make this reproducible? – Hack-R Oct 9 '16 at 16:06
  • Please put the result of the dput() in your question, i.e. edit your question! – jogo Oct 9 '16 at 17:51

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.