Su suposición es correcta, ncvTest
realiza la versión original de la prueba Breusch-Pagan. Esto realmente se puede verificar comparándolo con bptest(model, studentize = FALSE)
. (Como señaló @ Helix123, dos funciones también difieren en otros aspectos, como los argumentos predeterminados, uno debe consultar los manuales del paquete lmtest
y car
para obtener más detalles).
R. Koenker propuso la prueba studentizada de Breusch-Pagan en su artículo de 1981 Una Nota sobre la Studentización de una prueba de heterocedasticidad . La diferencia más obvia de los dos es que usan estadísticas de prueba diferentes. A saber, deje que sea la estadística de prueba estudiada y sea la original,* ξξ∗ξ^
ξ^=λξ∗,λ=Var(ε2)2Var(ε)2.
Aquí hay un fragmento de código que demuestra lo que acabo de escribir (datos tomados del faraway
paquete):
> mdl = lm(final ~ midterm, data = stat500)
> bptest(mdl)
studentized Breusch-Pagan test
data: mdl
BP = 0.86813, df = 1, p-value = 0.3515
> bptest(mdl, studentize = FALSE)
Breusch-Pagan test
data: mdl
BP = 0.67017, df = 1, p-value = 0.413
> ncvTest(mdl)
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 0.6701721 Df = 1 p = 0.4129916
>
> n = nrow(stat500)
> e = residuals(mdl)
> bpmdl = lm(e^2 ~ midterm, data = stat500)
> lambda = (n - 1) / n * var(e^2) / (2 * ((n - 1) / n * var(e))^2)
> Studentized_bp = n * summary(bpmdl)$r.squared
> Original_bp = Studentized_bp * lambda
>
> Studentized_bp
[1] 0.8681335
> Original_bp
[1] 0.6701721
En cuanto a por qué uno quiere estudiar la prueba original de BP, una cita directa del artículo de R. Koenker puede ser útil:
... Dos conclusiones surgen de este análisis:
- El poder asintótico de la prueba de Breusch y Pagan es extremadamente sensible a la curtosis de la distribución de , yε
- El tamaño asintótico de la prueba es correcto solo en casos especiales de curtosis gaussiana.
La primera conclusión se amplía en Koenker y Bassett (1981), donde se sugieren pruebas alternativas y robustas de heterocedasticidad. La última conclusión implica que los niveles de significación sugeridos por Breusch y Pagan serán correctos solo en condiciones gaussianas en
. Dado que tales condiciones generalmente se asumen con fe ciega y son notoriamente difíciles de verificar, se sugiere una modificación de la prueba de Breusch y Pagan que correctamente "estudia" el estadístico de prueba y conduce a niveles de significación asintóticamente correctos para una clase de distribuciones razonablemente grande para .εε
En resumen, la prueba de BP studentizada es más robusta que la original.
ncvTest
ybptest
usar diferentes variables para explicar los residuos, ver argumentosvar.formula
yvarformula
, respectivamente. Los resultados serán diferentes una vez que agregue otro regresor a su ejemplo.En términos prácticos,
ncvTest
usa el lado izquierdo de la ecuación ybptest
usa el lado derecho, por defecto.Significa que, en el caso de
Y ~ X
, ambas pruebas proporcionarán los mismos resultados (con respecto a lastudentize = F
opción debptest
). Pero en un análisis multivariante comoY ~ 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
, delfaraway
paquete):Prueba de BP, utilizando valores ajustados:
Prueba de PA, utilizando una combinación lineal de predictores:
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
hw
variable:Por último, como resumió @Francis, "en resumen, la prueba de BP estudiantilizada es más robusta que la original", generalmente utilizo
bptest
, constudentize = TRUE
(por defecto) yvarformula = ~ fitted.values(my.lm)
como opciones, un enfoque inicial para la homocedasticidad.fuente