Dalam istilah praktis, ncvTestgunakan sisi kiri dari persamaan dan bptestgunakan sisi kanan, secara default.
Ini berarti bahwa dalam kasus Y ~ X, kedua tes akan memberikan hasil yang sama (mengenai studentize = Fopsi bptest). Tetapi dalam analisis multivariat seperti itu Y ~ X1 + X2, hasilnya akan berbeda. (Seperti yang ditunjukkan oleh @ Helix123)
Dari file bantuan ncvTest : var.formula: "rumus satu sisi untuk varian kesalahan; jika dihilangkan, varian kesalahan tergantung pada nilai yang dipasang ." Yang berarti, secara default, nilai yang dipasang akan digunakan, tetapi juga memungkinkan untuk menggunakan kombinasi linear dari variabel independen (X1 + X2).
Dari file bantuan bptest : varformula: "Secara default , variabel penjelas yang sama diambil seperti dalam model regresi utama."
Melanjutkan contoh yang sama dari @Francis (data stat500, dari farawaypaket):
> mdl_t = lm(final ~ midterm + hw, data = stat500)
Tes BP, menggunakan nilai yang dipasang:
> 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
Tes BP, menggunakan kombinasi prediktor linier:
> 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
"Opsi kombinasi linear" memungkinkan untuk menyelidiki heteroskedastisitas yang terkait dengan ketergantungan linear dari variabel independen tertentu. Misalnya, hanya hwvariabelnya:
> 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
Terakhir, seperti yang dirangkum @Francis, "Singkatnya, tes BP pelajar lebih kuat daripada yang asli", saya biasanya menggunakan bptest, dengan studentize = TRUE(default) dan varformula = ~ fitted.values(my.lm)sebagai opsi, untuk pendekatan awal untuk homoskedastisitas.
ncvTestdanbptestmenggunakan variabel yang berbeda untuk menjelaskan residu, lihat argumenvar.formuladanvarformula, masing-masing. Hasilnya akan berbeda setelah Anda menambahkan regressor lain ke contoh Anda.