Ero un po confuso riguardo allinterpretazione di bptest
in R (library(lmtest)
). Lipotesi nulla di bptest
è che i residui abbiano varianza costante. Quindi, un valore p inferiore a 0,05 significherebbe che lipotesi di omoschedasticità dovrebbe essere respinta. Tuttavia su questo sito web:
Ho trovato il i seguenti risultati che mi confondono:
data: lmMod BP = 3.2149, df = 1, p-value = 0.07297
Un valore p> 0,05 indica che lipotesi nulla (la varianza è immutabile nel residuo) può essere rifiutato e quindi esiste eterodasticità. Ciò può essere confermato eseguendo una convalida globale delle ipotesi del modello lineare (gvlma) sulloggetto 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!
Allora perché è così che un valore p> 0,05 significa che devi rifiutare lipotesi nulla, quando in realtà un valore p inferiore a 0,05 indica che devi rifiutare lipotesi nulla?
Risposta
Questo dovrebbe essere un errore di battitura su rstatistics.net. Hai ragione dicendo che lipotesi nulla del test di Breusch-Pagan è lomoscedasticità (= la varianza non dipende dai regressori ausiliari). Se $ p $ -value diventa “piccolo”, lipotesi nulla viene rifiutata.
Consiglierei di contattare gli autori di rstatistics.net riguardo a questo problema per vedere se sono daccordo e risolverlo.
Inoltre, nota che glvma()
utilizza un regressore ausiliario diverso da bptest()
per impostazione predefinita e disattiva la studentizzazione. Più precisamente, puoi vedere le differenze se replichi i risultati impostando gli argomenti di bptest()
in modo esplicito.
Il modello è dato da:
data("cars", package = "datasets") lmMod <- lm(dist ~ speed, data = cars)
Limpostazione predefinita utilizzata da bptest()
utilizza quindi gli stessi regressori ausiliari del modello, ad esempio speed
in questo caso. Inoltre utilizza la versione studentizzata con proprietà di campioni finiti migliorate che producono un risultato non 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
Al contrario, glvma()
disattiva la studentizzazione e controlla una tendenza lineare nelle varianze.
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
Come puoi vedere entrambi i valori $ p $ sono piuttosto piccoli ma su diversi lati del 5%. Le versioni studentizzate sono entrambe leggermente superiori al 5%.
glvma
dice " Presupposti NON soddisfatti! " nellultima riga, quando in realtà si basa sul valore p dibptest()
il presupposto dovrebbe essere soddisfatto.glvma
, queste sono peggiori delle stelle significative e indicano che il valore p del 5,1% è fondamentalmente diverso dal 4,9%.