W praktyce ncvTest
używa lewej strony równania i bptest
domyślnie używa prawej.
Oznacza to, że w przypadku Y ~ X
, oba testy dostarczą takie same wyniki (w odniesieniu do studentize = F
opcji bptest
). Ale w analizie wielowymiarowej, takiej jak Y ~ 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
, z faraway
pakietu):
> mdl_t = lm(final ~ midterm + hw, data = stat500)
Test BP, przy użyciu dopasowanych wartości:
> ncvTest(mdl_t) # Default
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 0.6509135 Df = 1 p = 0.4197863
> bptest(mdl_t, varformula = ~ fitted.values(mdl_t), studentize = F)
Breusch-Pagan test
data: mdl_t
BP = 0.65091, df = 1, p-value = 0.4198
Test BP z wykorzystaniem liniowej kombinacji predyktorów:
> ncvTest(mdl_t, var.formula = ~ midterm + hw)
Non-constant Variance Score Test
Variance formula: ~ midterm + hw
Chisquare = 0.7689743 Df = 2 p = 0.6807997
> bptest(mdl_t, studentize = F) # Default
Breusch-Pagan test
data: mdl_t
BP = 0.76897, df = 2, p-value = 0.6808
„Opcja kombinacji liniowej” pozwala zbadać heteroskedastyczność związaną z liniową zależnością określonej zmiennej niezależnej. Na przykład tylko hw
zmienna:
> ncvTest(mdl_t, var.formula = ~ hw)
Non-constant Variance Score Test
Variance formula: ~ hw
Chisquare = 0.04445789 Df = 1 p = 0.833004
> bptest(mdl_t, varformula = ~ stat500$hw, studentize = F)
Breusch-Pagan test
data: mdl_t
BP = 0.044458, df = 1, p-value = 0.833
Wreszcie, jak podsumował @Francis: „Krótko mówiąc, studencki test BP jest bardziej niezawodny niż test oryginalny”, zwykle używam bptest
, z studentize = TRUE
(domyślnie) i varformula = ~ fitted.values(my.lm)
jako opcjami, do wstępnego podejścia do homoskedastyczności.
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.