Em termos práticos, ncvTest
usa o lado esquerdo da equação e bptest
usa o lado direito, por padrão.
Isso significa que, em um caso de Y ~ X
, ambos os testes fornecerão os mesmos resultados (em relação à studentize = F
opção de bptest
). Mas em uma análise multivariada, como Y ~ X1 + X2
, os resultados serão diferentes. (Como @ Helix123 apontou)
No arquivo de ajuda de ncvTest : var.formula
: "uma fórmula unilateral para a variação de erro; se omitida, a variação de erro depende dos valores ajustados ." O que significa que, por padrão, os valores ajustados serão usados, mas também permite usar uma combinação linear das variáveis independentes (X1 + X2).
No arquivo de ajuda de bptest : varformula
: "Por padrão, as mesmas variáveis explicativas são obtidas como no modelo de regressão principal."
Continuando o mesmo exemplo de @Francis (dados stat500
, do faraway
pacote):
> mdl_t = lm(final ~ midterm + hw, data = stat500)
Teste de pressão arterial, usando valores ajustados:
> 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
Teste de pressão arterial, usando uma combinação linear de preditores:
> 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
A "opção de combinação linear" permite investigar a heterocedasticidade associada à dependência linear de uma variável independente específica. Por exemplo, apenas a hw
variável:
> 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
Por fim, como o @Francis resumiu: "Em resumo, o teste de PA estudado é mais robusto que o original", costumo acompanhar bptest
, com studentize = TRUE
(padrão) e varformula = ~ fitted.values(my.lm)
como opções, uma abordagem inicial para a homocedasticidade.
ncvTest
ebptest
use variáveis diferentes para explicar os resíduos, consulte argumentosvar.formula
evarformula
, respectivamente. Os resultados divergem quando você adiciona outro regressor ao seu exemplo.