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:
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%.
glvma
dit " Hypothèses NON satisfaites! " dans la dernière ligne, alors quen fait basé sur la valeur p debptest()
lhypothèse doit être satisfaite.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%.