Interprétation du test de Breusch-Pagan bptest () dans R

Jétais un peu perplexe concernant linterprétation de bptest dans R (library(lmtest)). Lhypothèse nulle de bptest est que les résidus ont une variance constante. Ainsi, une valeur p inférieure à 0,05 signifierait que lhypothèse dhomoscédasticité devrait être rejetée. Cependant sur ce site Web:

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

Jai trouvé le résultats suivants qui me déroutent:

data: lmMod BP = 3.2149, df = 1, p-value = 0.07297 

Une p-Value> 0,05 indique que lhypothèse nulle (la variance est inchangée dans le résidu) peut être rejeté et donc heterscedasticity existe. Cela peut être confirmé en exécutant une validation globale des hypothèses de modèle linéaire (gvlma) sur lobjet 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! 

Alors pourquoi est-ce le cas quune p-value> 0,05 signifie que vous devez rejeter lhypothèse nulle, alors quen fait une p-value inférieure à 0,05 indique que vous devez rejeter lhypothèse nulle?

Réponse

Cela devrait être une faute de frappe sur rstatistics.net. Vous avez raison de dire que lhypothèse nulle du test de Breusch-Pagan est lhomoscédasticité (= la variance ne dépend pas des régresseurs auxiliaires). Si la valeur $ p $ devient « petite », lhypothèse nulle est rejetée.

Je recommanderais de contacter les auteurs de rstatistics.net concernant ce problème pour voir sils sont daccord et le corriger.

De plus, notez que glvma() utilise un régresseur auxiliaire différent de bptest() par défaut et désactive la studentisation. Plus précisément, vous pouvez voir les différences si vous répliquez les résultats en définissant les arguments de bptest() explicitement.

Le modèle est donné par:

data("cars", package = "datasets") lmMod <- lm(dist ~ speed, data = cars) 

La valeur par défaut utilisée par bptest() utilise alors les mêmes régresseurs auxiliaires que le modèle, cest-à-dire speed dans ce cas. Il utilise également la version étudiée avec des propriétés déchantillonnage fini améliorées produisant un résultat non significatif.

library("lmtest") bptest(lmMod, ~ speed, data = cars, studentize = TRUE) ## studentized Breusch-Pagan test ## ## data: lmMod ## BP = 3.2149, df = 1, p-value = 0.07297 

En revanche, le glvma() désactive la studentisation et vérifie une tendance linéaire dans les variances.

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 

Comme vous pouvez le voir, les deux valeurs $ p $ sont plutôt petites mais sur différents côtés de 5%. Les versions étudiées sont toutes deux légèrement supérieures à 5%.

Commentaires

  • Il est cependant étrange que glvma dit " Hypothèses NON satisfaites! " dans la dernière ligne, alors quen fait basé sur la valeur p de bptest() lhypothèse doit être satisfaite.
  • Jai ' mis à jour ma réponse pour expliquer quelle ' s variations légèrement différentes du test de Breusch-Pagan qui conduisent à des valeurs p légèrement différentes sur différents côtés de 5%. Je ' je naime pas les étiquettes de décision dans glvma, elles sont pires que les étoiles de signification et indiquent que la valeur p de 5,1% est fondamentalement différent de 4,9%.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *