Twoje przypuszczenie jest prawidłowe, ncvTest
wykonuje oryginalną wersję testu Breusch-Pagana. Można to faktycznie zweryfikować, porównując z tym bptest(model, studentize = FALSE)
. (Jak wskazał @ Helix123, dwie funkcje różnią się także innymi aspektami, takimi jak domyślne argumenty, należy sprawdzić instrukcje pakietów lmtest
i car
uzyskać więcej szczegółów.)
Studencki test Breuscha-Pagana został zaproponowany przez R. Koenkera w jego artykule z 1981 r. A Note on Studentizing a Test for Heteroscedasticity . Najbardziej oczywistą różnicą między nimi jest to, że używają różnych statystyk testowych. Mianowicie, niechξ∗ będą statystycznymi badaniami testowymi iξ^bądź oryginalny,
ξ^=λξ∗,λ=Var(ε2)2Var(ε)2.
Oto fragment kodu, który pokazuje, co właśnie napisałem (dane pobrane z faraway
pakietu):
> mdl = lm(final ~ midterm, data = stat500)
> bptest(mdl)
studentized Breusch-Pagan test
data: mdl
BP = 0.86813, df = 1, p-value = 0.3515
> bptest(mdl, studentize = FALSE)
Breusch-Pagan test
data: mdl
BP = 0.67017, df = 1, p-value = 0.413
> ncvTest(mdl)
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 0.6701721 Df = 1 p = 0.4129916
>
> n = nrow(stat500)
> e = residuals(mdl)
> bpmdl = lm(e^2 ~ midterm, data = stat500)
> lambda = (n - 1) / n * var(e^2) / (2 * ((n - 1) / n * var(e))^2)
> Studentized_bp = n * summary(bpmdl)$r.squared
> Original_bp = Studentized_bp * lambda
>
> Studentized_bp
[1] 0.8681335
> Original_bp
[1] 0.6701721
Jeśli chodzi o to, dlaczego chcemy studiować oryginalny test BP, pomocny może być bezpośredni cytat z artykułu R. Koenkera:
... Z tej analizy wynikają dwa wnioski:
- Asymptotyczna moc testu Breuscha i Pagana jest niezwykle wrażliwa na kurtozę dystrybucji , orazε
- asymptotyczny rozmiar testu jest poprawny tylko w szczególnym przypadku kurtozy gaussowskiej.
Pierwszy wniosek został rozwinięty w Koenker i Bassett (1981), gdzie sugerowane są alternatywne, solidne testy heteroscedastyczności. Ten ostatni wniosek sugeruje, że poziomy istotności sugerowane przez Breuscha i Pagana będą poprawne tylko w warunkach gaussowskich na
. Ponieważ takie warunki są ogólnie zakładane w ślepej wierze i są niezwykle trudne do zweryfikowania, sugerowana jest modyfikacja testu Breuscha i Pagana, która prawidłowo „uczą się” statystyki testu i prowadzi do asymptotycznie poprawnych poziomów istotności dla stosunkowo dużej klasy rozkładów dla .εε
Krótko mówiąc, studencki test BP jest bardziej niezawodny niż test oryginalny.
ncvTest
ibptest
używać różnych zmiennych wyjaśnić pozostałości można znaleźć argumentyvar.formula
ivarformula
, odpowiednio. Wyniki będą się różnić, gdy dodasz kolejny regressor do swojego przykładu.W praktyce
ncvTest
używa lewej strony równania ibptest
domyślnie używa prawej.Oznacza to, że w przypadku
Y ~ X
, oba testy dostarczą takie same wyniki (w odniesieniu dostudentize = F
opcjibptest
). Ale w analizie wielowymiarowej, takiej jakY ~ X1 + X2
, wyniki będą inne. (Jak wskazał @ Helix123)Z pliku pomocy
ncvTest : var.formula
: „jednostronna formuła wariancji błędu; jeśli zostanie pominięta, wariancja błędu zależy od dopasowanych wartości ”. Co oznacza, że domyślnie zostaną zastosowane dopasowane wartości, ale pozwala również na użycie liniowej kombinacji zmiennych niezależnych (X1 + X2).Z pliku pomocy
bptest : varformula
: „Domyślnie pobierane są te same zmienne objaśniające , co w głównym modelu regresji”.Kontynuując ten sam przykład @Francis (dane
stat500
, zfaraway
pakietu):Test BP, przy użyciu dopasowanych wartości:
Test BP z wykorzystaniem liniowej kombinacji predyktorów:
„Opcja kombinacji liniowej” pozwala zbadać heteroskedastyczność związaną z liniową zależnością określonej zmiennej niezależnej. Na przykład tylko
hw
zmienna:Wreszcie, jak podsumował @Francis: „Krótko mówiąc, studencki test BP jest bardziej niezawodny niż test oryginalny”, zwykle używam
bptest
, zstudentize = TRUE
(domyślnie) ivarformula = ~ fitted.values(my.lm)
jako opcjami, do wstępnego podejścia do homoskedastyczności.źródło