Jika Anda melihat kode (tipe sederhana plot.lm
, tanpa tanda kurung, atau edit(plot.lm)
pada prompt R), Anda akan melihat bahwa jarak Cook didefinisikan baris 44, dengan cooks.distance()
fungsi. Untuk melihat apa yang dikerjakannya, ketik stats:::cooks.distance.glm
pada prompt R. Di sana Anda melihat bahwa itu didefinisikan sebagai
(res/(1 - hat))^2 * hat/(dispersion * p)
di mana res
residu Pearson (seperti yang dikembalikan oleh influence()
fungsi), hat
adalah matriks topi , p
adalah jumlah parameter dalam model, dan dispersion
dispersi dipertimbangkan untuk model saat ini (ditetapkan pada satu untuk logistik dan regresi Poisson, lihat help(glm)
). Singkatnya, ini dihitung sebagai fungsi dari leverage pengamatan dan residu standar mereka. (Bandingkan dengan stats:::cooks.distance.lm
.)
Untuk referensi yang lebih formal, Anda dapat mengikuti referensi dalam plot.lm()
fungsi, yaitu
Belsley, DA, Kuh, E. and Welsch, RE (1980). Diagnostik Regresi . New York: Wiley.
Selain itu, tentang informasi tambahan yang ditampilkan dalam grafik, kita dapat melihat lebih jauh dan melihat bahwa R menggunakan
plot(xx, rsp, ... # line 230
panel(xx, rsp, ...) # line 233
cl.h <- sqrt(crit * p * (1 - hh)/hh) # line 243
lines(hh, cl.h, lty = 2, col = 2) #
lines(hh, -cl.h, lty = 2, col = 2) #
di mana rsp
diberi label Std. Residu Pearson. dalam hal GLM, Std. residu sebaliknya (baris 172); dalam kedua kasus, bagaimanapun, rumus yang digunakan oleh R adalah (baris 175 dan 178)
residuals(x, "pearson") / s * sqrt(1 - hii)
di mana hii
matriks topi dikembalikan oleh fungsi generik lm.influence()
. Ini adalah formula biasa untuk std. residu:
rsj=rj1−h^j−−−−−√
jj
Baris berikutnya dari kode R menggambar lebih halus untuk jarak Cook ( add.smooth=TRUE
in plot.lm()
secara default, lihat getOption("add.smooth")
) dan garis kontur (tidak terlihat di plot Anda) untuk residu standar kritis (lihat cook.levels=
opsi).