Tulkinta Breusch-Pagan -testistä bptest () R

Olin hieman hämmentynyt tulkinnasta bptest ryhmässä R (library(lmtest)). bptest: n nullhypoteesi on, että jäännöksillä on jatkuva varianssi. Joten p-arvo, joka on alle 0,05, tarkoittaisi, että homoscedasticity-oletus olisi hylättävä. Tällä verkkosivustolla:

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

Löysin seuraavat tulokset, jotka hämmentävät minua:

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

A-arvo> 0,05 osoittaa, että nollahypoteesi (varianssi on muuttumaton jäännöksessä) voidaan hylättiin, ja siksi hetersedastisuus on olemassa. Tämä voidaan vahvistaa suorittamalla lineaarisen mallin oletusten (gvlma) globaali validointi lm-objektilla.

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! 

Miksi näin on että p-arvo> 0,05 tarkoittaa, että sinun on hylättävä nollahypoteesi, vaikka itse asiassa alle 0,05 oleva p-arvo osoittaa, että sinun on hylättävä nollahypoteesi?

Vastaa

Tämän pitäisi olla kirjoitusvirhe rstatistics.net-sivustossa. Olet oikeassa, että Breusch-Pagan-testin nollahypoteesi on homoskedastisuus (= varianssi ei riipu apuregressoreista). Jos $ p $ -arvosta tulee ”pieni”, nollahypoteesi hylätään.

Suosittelen ottamaan yhteyttä rstatistics.netin kirjoittajiin tässä asiassa selvittääkseen, ovatko he samaa mieltä ja korjaavatko ne. >

Huomaa lisäksi, että glvma() käyttää oletusarvoisesti eri apuregresoria kuin bptest() ja kytkee opiskelijan pois päältä. Tarkemmin sanottuna näet erot, jos kopioit tulokset asettamalla bptest()-argumentit yksiselitteisesti.

Mallin antaa:

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

Oletusarvo, jota bptest() käyttää, käyttää sitten samoja apuregressoreita kuin malli, eli speed tässä tapauksessa. Lisäksi se käyttää oppilasversiota, jolla on parannetut rajallisen otoksen ominaisuudet, mikä antaa ei-merkittävän tuloksen.

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

Sen sijaan glvma() kytkee opiskelijan pois päältä ja tarkistaa varianssien lineaarisen trendin.

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 

Kuten näette, molemmat $ p $ -arvot ovat melko pieniä, mutta eri puolilla 5%. Opiskelijoiden versiot ovat molemmat hieman yli 5%.

Kommentit

  • On kuitenkin outoa, että glvma sanoo " Oletukset EI täyty! " viimeisellä rivillä, tosiasiallisesti perustuen bptest() oletuksen pitäisi olla tyydyttävä.
  • Olen ' päivittänyt vastaukseni selittääkseen, että se ' s hieman erilaiset Breusch-Pagan-testin vaihtelut, jotka johtavat hieman erilaisiin p-arvoihin 5%: n eri puolilla. En ' ole kiinnostunut glvma -tunnisteista, nämä ovat huonompia kuin merkitsevyystähdet ja osoittavat, että p-arvo 5,1% on olennaisesti erilainen kuin 4,9%.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *