In termini pratici, ncvTest
utilizza il lato sinistro dell'equazione e bptest
utilizza il lato destro, per impostazione predefinita.
Ciò significa che in Y ~ X
entrambi i casi entrambi i test forniranno gli stessi risultati (per quanto riguarda l' studentize = F
opzione di bptest
). Ma in un'analisi multivariata come Y ~ X1 + X2
, i risultati saranno diversi. (Come sottolineato da @ Helix123)
Dal file di aiuto di ncvTest : var.formula
: "una formula unilaterale per la varianza dell'errore; se omessa, la varianza dell'errore dipende dai valori adattati ". Ciò significa che, per impostazione predefinita, verranno utilizzati i valori adattati, ma consente anche di utilizzare una combinazione lineare delle variabili indipendenti (X1 + X2).
Dal file di aiuto di bptest : varformula
: "Per impostazione predefinita, vengono prese le stesse variabili esplicative del modello di regressione principale."
Continuando lo stesso esempio di @Francis (dati stat500
, dal faraway
pacchetto):
> mdl_t = lm(final ~ midterm + hw, data = stat500)
Test BP, utilizzando i valori adattati:
> 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
BP test, utilizzando una combinazione lineare di predittori:
> 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
L '"opzione di combinazione lineare" consente di studiare l'eteroschedasticità associata alla dipendenza lineare di una specifica variabile indipendente. Ad esempio, solo la hw
variabile:
> 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
Infine, come sintetizzava @Francis, "In breve, il test BP studentizzato è più robusto di quello originale", di solito vado bptest
, con studentize = TRUE
(impostazione predefinita) e varformula = ~ fitted.values(my.lm)
come opzioni, per un approccio iniziale per l'omoschedasticità.
ncvTest
ebptest
utilizzare variabili diverse per spiegare i residui, vedere gli argomentivar.formula
evarformula
, rispettivamente. I risultati divergeranno quando aggiungi un altro regressore al tuo esempio.