Interpretarea testului Breusch-Pagan bptest () în R

Am fost un pic confuz în ceea ce privește interpretarea bptest în R (library(lmtest)). Ipoteza nulă a bptest este că reziduurile au varianță constantă. Deci, o valoare p mai mică de 0,05 ar însemna că ipoteza homoscedasticității ar trebui respinsă. Cu toate acestea, pe acest site:

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

Am găsit următoarele rezultate care mă încurcă:

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

O valoare p> 0,05 indică faptul că ipoteza nulă (varianța este neschimbată în reziduu) poate fi respinsă și, prin urmare, există heterscedasticitate. Acest lucru poate fi confirmat executând o validare globală a ipotezelor modelului liniar (gvlma) pe obiectul 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! 

Deci, de ce este cazul că o valoare p> 0,05 înseamnă că trebuie să respingi ipoteza nulă, când de fapt o valoare p mai mică de 0,05 indică faptul că trebuie să respingi ipoteza nulă?

Răspuns

Aceasta ar trebui să fie o greșeală de greșeală pe rstatistics.net. Aveți dreptate că ipoteza nulă a testului Breusch-Pagan este homoscedasticitatea (= varianța nu depinde de regresorii auxiliari). Dacă valoarea $ p $ devine „mică”, ipoteza nulă este respinsă.

Aș recomanda să contactați autorii rstatistics.net cu privire la această problemă pentru a vedea dacă sunt de acord și a remedia problema.

Mai mult, rețineți că glvma() folosește în mod implicit un regresor auxiliar diferit de bptest() și dezactivează studențierea. Mai precis, puteți vedea diferențele dacă reproduceți rezultatele prin setarea explicită a argumentelor bptest().

Modelul este dat de:

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

Valoarea implicită utilizată de bptest() utilizează apoi aceleași regresori auxiliari ca modelul, adică speed în acest caz. De asemenea, folosește versiunea studențiată cu proprietăți îmbunătățite ale eșantionului finit, obținând un rezultat nesemnificativ.

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

În schimb, glvma() oprește studențarea și verifică o tendință liniară a variațiilor.

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 

După cum puteți vedea, ambele valori $ p $ sunt destul de mici, dar pe diferite laturi de 5%. Versiunile studențiate sunt ambele ușor peste 5%.

Comentarii

  • Este ciudat, totuși, că glvma spune " Ipotezele NU sunt îndeplinite! " în ultimul rând, când de fapt se bazează pe valoarea p a bptest() presupunerea ar trebui să fie îndeplinită.
  • Am ' am actualizat răspunsul meu pentru a explica că ' variații ușor diferite ale testului Breusch-Pagan, care conduc la valori p ușor diferite pe diferite laturi de 5%. Nu ' nu-mi place etichetele de decizie din glvma, acestea sunt mai slabe decât stelele de semnificație și transmit că valoarea p de 5,1% este fundamental diferit de 4,9%.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *