На практиці ncvTest
використовує лівий бік рівняння, а bptest
правий - за замовчуванням.
Це означає, що у випадку Y ~ X
, обидва тести дадуть однакові результати (щодо studentize = F
варіанту bptest
). Але в такому багатоваріантному аналізі, як Y ~ X1 + X2
результати, результати будуть різними. (Як вказував @ Helix123)
З файлу довідки ncvTest : var.formula
: "одностороння формула для дисперсії помилок; якщо вона опущена, відхилення помилки залежить від встановлених значень ." Що означає, що за замовчуванням будуть використані пристосовані значення, але це також дозволяє використовувати лінійну комбінацію незалежних змінних (X1 + X2).
З довідкового файлу bptest : varformula
: "За замовчуванням беруться ті самі пояснювальні змінні , що і в основній моделі регресії."
Продовжуючи той же приклад @Francis (дані stat500
, з faraway
пакета):
> mdl_t = lm(final ~ midterm + hw, data = stat500)
Тест на ВР з використанням пристосованих значень:
> 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
Тест на БП, використовуючи лінійну комбінацію предикторів:
> 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
"Варіант лінійної комбінації" дозволяє дослідити гетерокедастичність, пов'язану з лінійною залежністю конкретної незалежної змінної. Наприклад, просто hw
змінна:
> 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
Нарешті, як підсумовував @Francis, "Коротше кажучи, випробовуваний тест на ВР є більш надійним, ніж оригінальний", я, як правило, іду bptest
з studentize = TRUE
(за замовчуванням) і varformula = ~ fitted.values(my.lm)
як варіант, для початкового підходу для гомосекдастичності.
ncvTest
іbptest
використовуйте різні змінні для пояснення залишків, перегляду аргументівvar.formula
іvarformula
, відповідно. Результати будуть відрізнятися, коли ви додасте ще один регресор до свого прикладу.