Estaba un poco confundido con respecto a la interpretación de bptest
en R (library(lmtest)
). La hipótesis nula de bptest
es que los residuos tienen varianza constante. Entonces, un valor de p menor que 0.05 significaría que el supuesto de homocedasticidad tendría que ser rechazado. Sin embargo, en este sitio web:
Encontré el siguientes resultados que me confunden:
data: lmMod BP = 3.2149, df = 1, p-value = 0.07297
Un valor p> 0.05 indica que la hipótesis nula (la varianza no cambia en el residual) puede ser rechazada y por tanto existe heterscedasticidad. Esto se puede confirmar ejecutando una validación global de los supuestos del modelo lineal (gvlma) en el objeto lm.
gvlma(lmMod) # validate if assumptions of linear regression holds true. # Call: gvlma(x = lmMod) Value p-value Decision Global Stat 15.801 0.003298 Assumptions NOT satisfied! Skewness 6.528 0.010621 Assumptions NOT satisfied! Kurtosis 1.661 0.197449 Assumptions acceptable. Link Function 2.329 0.126998 Assumptions acceptable. Heteroscedasticity 5.283 0.021530 Assumptions NOT satisfied!
Entonces, ¿por qué es así? que un valor p> 0.05 significa que tiene que rechazar la hipótesis nula, cuando en realidad un valor p menor que 0.05 indica que tiene que rechazar la hipótesis nula?
Respuesta
Esto debería ser un error tipográfico en rstatistics.net. Tiene razón en que la hipótesis nula de la prueba de Breusch-Pagan es la homocedasticidad (= la varianza no depende de regresores auxiliares). Si el valor $ p $ se vuelve «pequeño», la hipótesis nula se rechaza.
Recomendaría contactar a los autores de rstatistics.net con respecto a este problema para ver si están de acuerdo y solucionarlo.
Además, tenga en cuenta que glvma()
emplea un regresor auxiliar diferente al bptest()
por defecto y desactiva la estudiantilización. Más precisamente, puede ver las diferencias si replica los resultados estableciendo los argumentos de bptest()
explícitamente.
El modelo viene dado por:
data("cars", package = "datasets") lmMod <- lm(dist ~ speed, data = cars)
El valor predeterminado empleado por bptest()
usa los mismos regresores auxiliares que el modelo, es decir, speed
en este caso. También utiliza la versión studentizada con propiedades de muestra finita mejoradas que arrojan un resultado no significativo.
library("lmtest") bptest(lmMod, ~ speed, data = cars, studentize = TRUE) ## studentized Breusch-Pagan test ## ## data: lmMod ## BP = 3.2149, df = 1, p-value = 0.07297
Por el contrario, glvma()
desactiva la studentización y comprueba si hay una tendencia lineal en las variaciones.
cars$trend <- 1:nrow(cars) bptest(lmMod, ~ trend, data = cars, studentize = FALSE) ## Breusch-Pagan test ## ## data: lmMod ## BP = 5.2834, df = 1, p-value = 0.02153
Como puede ver, ambos valores de $ p $ son bastante pequeños pero en diferentes lados del 5%. Las versiones studentizadas están ligeramente por encima del 5%.
glvma
dice " ¡Supuestos NO satisfechos! " en la última fila, cuando de hecho se basa en el valor p debptest()
la suposición debe cumplirse.glvma
, estas son peores que las estrellas de importancia y transmiten que el valor p de 5.1% es fundamentalmente diferente al 4,9%.