bgtest {lmtest}R Documentation

Breusch-Godfrey Test


bgtest performs the Breusch-Godfrey test for higher-order serial correlation.


bgtest(formula, order = 1, = NULL, type = c("Chisq", "F"), data = list())


formula a symbolic description for the model to be tested (or a fitted "lm" object).
order integer. maximal order of serial correlation to be tested. Either a vector z or a formula with a single explanatory variable like ~ z. The observations in the model are ordered by the size of z. If set to NULL (the default) the observations are assumed to be ordered (e.g., a time series).
type the type of test statistic to be returned. Either "Chisq" for the Chi-squared test statistic or "F" for the F test statistic.
data an optional data frame containing the variables in the model. By default the variables are taken from the environment which bgtest is called from.


Under H_0 the test statistic is asymptotically Chi-squared with degrees of freedom as given in parameter. If type is set to "F" the function returns the exact F statistic which, under H_0, follows an F distribution with degrees of freedom as given in parameter.

The starting values for the lagged residuals in the supplementary regression are chosen to be 0.


A list with class "htest" containing the following components:

statistic the value of the test statistic.
p.value the p-value of the test.
parameter degrees of freedom.
method a character string indicating what type of test was performed. a character string giving the name(s) of the data.


David Mitchell <>, Achim Zeileis


Johnston, J. (1984): Econometric Methods, Third Edition, McGraw Hill Inc.

Godfrey, L.G. (1978): `Testing Against General Autoregressive and Moving Average Error Models when the Regressors Include Lagged Dependent Variables', Econometrica, 46, 1293-1302.

Breusch, T.S. (1979): `Testing for Autocorrelation in Dynamic Linear Models', Australian Economic Papers, 17, 334-355.

See Also



     ## Generate a stationary and an AR(1) series
     x <- rep(c(1, -1), 50)

     y1 <- 1 + x + rnorm(100)

     ## Perform Breusch-Godfrey test for first-order serial correlation:
     bgtest(y1 ~ x)
     ## or for fourth-order serial correlation
     bgtest(y1 ~ x, order = 4)
     ## Compare with Durbin-Watson test results:
     dwtest(y1 ~ x)

     y2 <- filter(y1, 0.5, method = "recursive")
     bgtest(y2 ~ x)

[Package lmtest version 0.9-14 Index]