Fiquei um pouco confuso quanto à interpretação de bptest
em R (library(lmtest)
). A hipótese nula de bptest
é que os resíduos têm variância constante. Portanto, um valor de p menor que 0,05 significaria que a suposição de homocedasticidade teria que ser rejeitada. No entanto, neste site:
Eu encontrei o seguintes resultados que me confundem:
data: lmMod BP = 3.2149, df = 1, p-value = 0.07297
Um p-Value> 0,05 indica que a hipótese nula (a variância é imutável no residual) pode ser rejeitada e, portanto, existe hetercedasticidade. Isso pode ser confirmado executando uma validação global das suposições do modelo linear (gvlma) no 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!
Então, por que é esse o caso que um valor p> 0,05 significa que você deve rejeitar a hipótese nula, quando na verdade um valor p menor que 0,05 indica que você deve rejeitar a hipótese nula?
Resposta
Isso deve ser um erro de digitação em rstatistics.net. Você está correto ao dizer que a hipótese nula do teste de Breusch-Pagan é homocedasticidade (= a variância não depende de regressores auxiliares). Se o valor de $ p $ se tornar “pequeno”, a hipótese nula será rejeitada.
Eu recomendaria entrar em contato com os autores de rstatistics.net a respeito desse problema para ver se eles concordam e consertá-lo.
Além disso, observe que glvma()
emprega um regressor auxiliar diferente de bptest()
por padrão e desativa a estudantização. Mais precisamente, você pode ver as diferenças se replicar os resultados definindo os argumentos de bptest()
explicitamente.
O modelo é dado por:
data("cars", package = "datasets") lmMod <- lm(dist ~ speed, data = cars)
O padrão empregado por bptest()
usa os mesmos regressores auxiliares do modelo, ou seja, speed
neste caso. Também usa a versão estudentizada com propriedades aprimoradas de amostra finita, produzindo um resultado não 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
Em contraste, o glvma()
desliga a estudentização e verifica uma tendência linear nas variações.
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 você pode ver, os valores de $ p $ são bastante pequenos, mas em lados diferentes de 5%. As versões estudantizadas estão ligeiramente acima de 5%.
glvma
diz " Premissas NÃO satisfeitas! " na última linha, quando na verdade com base no valor p debptest()
a suposição deve ser satisfeita.glvma
, eles são piores do que estrelas de significância e transmitem que o valor p de 5,1% é fundamentalmente diferente de 4,9%.