На практиці 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, відповідно. Результати будуть відрізнятися, коли ви додасте ще один регресор до свого прикладу.