Tebakan Anda benar, ncvTest
melakukan versi asli tes Breusch-Pagan. Ini sebenarnya dapat diverifikasi dengan membandingkannya bptest(model, studentize = FALSE)
. (Seperti yang ditunjukkan @ Helix123, dua fungsi juga berbeda dalam aspek lain seperti argumen default, seseorang harus memeriksa manual paket lmtest
dan car
untuk lebih detail.)
ξ∗ξ^
ξ^= λ ξ∗,λ = Var( ε2)2 Var( ε )2.
Berikut adalah potongan kode yang menunjukkan apa yang baru saja saya tulis (data diambil dari faraway
paket):
> mdl = lm(final ~ midterm, data = stat500)
> bptest(mdl)
studentized Breusch-Pagan test
data: mdl
BP = 0.86813, df = 1, p-value = 0.3515
> bptest(mdl, studentize = FALSE)
Breusch-Pagan test
data: mdl
BP = 0.67017, df = 1, p-value = 0.413
> ncvTest(mdl)
Non-constant Variance Score Test
Variance formula: ~ fitted.values
Chisquare = 0.6701721 Df = 1 p = 0.4129916
>
> n = nrow(stat500)
> e = residuals(mdl)
> bpmdl = lm(e^2 ~ midterm, data = stat500)
> lambda = (n - 1) / n * var(e^2) / (2 * ((n - 1) / n * var(e))^2)
> Studentized_bp = n * summary(bpmdl)$r.squared
> Original_bp = Studentized_bp * lambda
>
> Studentized_bp
[1] 0.8681335
> Original_bp
[1] 0.6701721
Adapun alasan mengapa seseorang ingin membuat tes BP yang asli, kutipan langsung dari artikel R. Koenker mungkin bermanfaat:
... Dua kesimpulan muncul dari analisis ini:
- Kekuatan asimptotik dari Breusch dan tes Pagan sangat sensitif terhadap kurtosis distribusi , danε
- ukuran asimptotik dari tes ini hanya benar dalam kasus khusus Gaussian kurtosis.
Kesimpulan sebelumnya diperluas dalam Koenker dan Bassett (1981) di mana alternatif, tes kuat untuk heteroskedastisitas disarankan. Kesimpulan terakhir menyiratkan bahwa tingkat signifikansi yang disarankan oleh Breusch dan Pagan hanya akan benar dalam kondisi Gaussian di
. Karena kondisi seperti itu umumnya diasumsikan berdasarkan keyakinan buta dan terkenal sulit untuk diverifikasi, sebuah modifikasi dari tes Breusch dan Pagan disarankan yang dengan benar "menswastakan" statistik pengujian dan mengarah ke tingkat signifikansi yang benar asimptotik untuk kelas distribusi yang cukup besar untuk .εεε
Singkatnya, tes BP pelajar lebih kuat daripada yang asli.
ncvTest
danbptest
menggunakan variabel yang berbeda untuk menjelaskan residu, lihat argumenvar.formula
danvarformula
, masing-masing. Hasilnya akan berbeda setelah Anda menambahkan regressor lain ke contoh Anda.Dalam istilah praktis,
ncvTest
gunakan sisi kiri dari persamaan danbptest
gunakan sisi kanan, secara default.Ini berarti bahwa dalam kasus
Y ~ X
, kedua tes akan memberikan hasil yang sama (mengenaistudentize = F
opsibptest
). Tetapi dalam analisis multivariat seperti ituY ~ 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
, darifaraway
paket):Tes BP, menggunakan nilai yang dipasang:
Tes BP, menggunakan kombinasi prediktor linier:
"Opsi kombinasi linear" memungkinkan untuk menyelidiki heteroskedastisitas yang terkait dengan ketergantungan linear dari variabel independen tertentu. Misalnya, hanya
hw
variabelnya:Terakhir, seperti yang dirangkum @Francis, "Singkatnya, tes BP pelajar lebih kuat daripada yang asli", saya biasanya menggunakan
bptest
, denganstudentize = TRUE
(default) danvarformula = ~ fitted.values(my.lm)
sebagai opsi, untuk pendekatan awal untuk homoskedastisitas.sumber