| bp.test | R Documentation |
Performs the Breusch-Pagan test for heteroscedasticity in linear regression models. Tests the null hypothesis that the error variance is constant (homoscedasticity) against the alternative that the error variance depends on the fitted values.
bp.test(model)
model |
A fitted linear model object (from |
The Breusch-Pagan test regresses the squared standardized residuals on the fitted values. The test statistic is:
BP = n \cdot R^2
where:
n = sample size
R^2 = coefficient of determination from auxiliary regression of
e_i^2 on \hat{y}_i
Under the null hypothesis of homoscedasticity, the test statistic follows
a chi-squared distribution: BP \sim \chi^2(p-1) where p is the
number of parameters in the model (including intercept).
Large values of the test statistic (small p-values) provide evidence against homoscedasticity.
An object of class "htest" with components:
statistic |
the value of the chi-squared test statistic. |
parameter |
degrees of freedom. |
p.value |
the p-value of the test. |
method |
a character string indicating the test performed. |
data.name |
a character string giving the name of the model. |
Breusch, T. S., and Pagan, A. R. (1979). A simple test for heteroscedasticity and random coefficient variation. Econometrica, 47(5), 1287-1294. DOI: 10.2307/1911963
# Example with homoscedastic errors
set.seed(123)
x <- runif(100)
y <- 2 + 3*x + rnorm(100, sd = 1)
model1 <- lm(y ~ x)
bp.test(model1) # Should not reject (p > 0.05)
# Example with heteroscedastic errors (variance increases with x)
set.seed(456)
x <- runif(100)
y <- 2 + 3 *x + rnorm(100, sd = 0.5 + 2*x)
model2 <- lm(y ~ x)
bp.test(model2) # Should reject (p < 0.05)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.