statsmodels.stats.diagnostic.het_breuschpagan(resid, exog_het)[source]

Breusch-Pagan Lagrange Multiplier test for heteroscedasticity

The tests the hypothesis that the residual variance does not depend on the variables in x in the form


sigma_i = sigma * f(alpha_0 + alpha z_i)

Homoscedasticity implies that $alpha=0$


For the Breusch-Pagan test, this should be the residual of a regression. If an array is given in exog, then the residuals are calculated by the an OLS regression or resid on exog. In this case resid should contain the dependent variable. Exog can be the same as x. TODO: I dropped the exog option, should I add it back?


This contains variables that might create data dependent heteroscedasticity.


lagrange multiplier statistic

lm_pvalue :float

p-value of lagrange multiplier test


f-statistic of the hypothesis that the error variance does not depend on x


p-value for the f-statistic


Assumes x contains constant (for counting dof and calculation of R^2). In the general description of LM test, Greene mentions that this test exaggerates the significance of results in small or moderately large samples. In this case the F-statistic is preferrable.


Chisquare test statistic is exactly (<1e-13) the same result as bptest in R-stats with defaults (studentize=True).

Implementation This is calculated using the generic formula for LM test using $R^2$ (Greene, section 17.6) and not with the explicit formula (Greene, section 11.4.3). The degrees of freedom for the p-value assume x is full rank.

References Greene 5th edition Breusch, Pagan article