En términos prácticos, ncvTestusa el lado izquierdo de la ecuación y bptestusa el lado derecho, por defecto.
Significa que, en el caso de Y ~ X, ambas pruebas proporcionarán los mismos resultados (con respecto a la studentize = Fopción de bptest). Pero en un análisis multivariante como Y ~ X1 + X2, los resultados serán diferentes. (Como señaló @ Helix123)
Del archivo de ayuda de ncvTest : var.formula: "una fórmula unilateral para la varianza del error; si se omite, la varianza del error depende de los valores ajustados ". Lo que significa que, por defecto, se usarán los valores ajustados, pero también permite usar una combinación lineal de las variables independientes (X1 + X2).
Del archivo de ayuda de bptest : varformula: "Por defecto , se toman las mismas variables explicativas que en el modelo de regresión principal".
Continuando con el mismo ejemplo de @Francis (datos stat500, del farawaypaquete):
> mdl_t = lm(final ~ midterm + hw, data = stat500)
Prueba de BP, utilizando valores ajustados:
> ncvTest(mdl_t) # Default
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 0.6509135 Df = 1 p = 0.4197863
> bptest(mdl_t, varformula = ~ fitted.values(mdl_t), studentize = F)
Breusch-Pagan test
data: mdl_t
BP = 0.65091, df = 1, p-value = 0.4198
Prueba de PA, utilizando una combinación lineal de predictores:
> ncvTest(mdl_t, var.formula = ~ midterm + hw)
Non-constant Variance Score Test
Variance formula: ~ midterm + hw
Chisquare = 0.7689743 Df = 2 p = 0.6807997
> bptest(mdl_t, studentize = F) # Default
Breusch-Pagan test
data: mdl_t
BP = 0.76897, df = 2, p-value = 0.6808
La "opción de combinación lineal" permite investigar la heterocedasticidad asociada a la dependencia lineal de una variable independiente específica. Por ejemplo, solo la hwvariable:
> ncvTest(mdl_t, var.formula = ~ hw)
Non-constant Variance Score Test
Variance formula: ~ hw
Chisquare = 0.04445789 Df = 1 p = 0.833004
> bptest(mdl_t, varformula = ~ stat500$hw, studentize = F)
Breusch-Pagan test
data: mdl_t
BP = 0.044458, df = 1, p-value = 0.833
Por último, como resumió @Francis, "en resumen, la prueba de BP estudiantilizada es más robusta que la original", generalmente utilizo bptest, con studentize = TRUE(por defecto) y varformula = ~ fitted.values(my.lm)como opciones, un enfoque inicial para la homocedasticidad.
ncvTestybptestusar diferentes variables para explicar los residuos, ver argumentosvar.formulayvarformula, respectivamente. Los resultados serán diferentes una vez que agregue otro regresor a su ejemplo.