Interpretação do teste Breusch-Pagan bptest () em R

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:

http://rstatistics.net/how-to-test-a-regression-model-for-heteroscedasticity-and-if-present-how-to-correct-it/

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%.

Comentários

  • É estranho que glvma diz " Premissas NÃO satisfeitas! " na última linha, quando na verdade com base no valor p de bptest() a suposição deve ser satisfeita.
  • Eu ' atualizei minha resposta para explicar que ' s variações ligeiramente diferentes do teste Breusch-Pagan que levam a valores-p ligeiramente diferentes em lados diferentes de 5%. Eu ' não gosto dos rótulos de decisão em 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%.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *