หากคุณดูที่รหัส (ประเภทง่าย ๆplot.lm
โดยไม่ต้องใส่วงเล็บหรือedit(plot.lm)
ที่พรอมต์ R) คุณจะเห็นว่าระยะทางของ Cookถูกกำหนดไว้ที่บรรทัดที่ 44 พร้อมกับcooks.distance()
ฟังก์ชัน เมื่อต้องการดูว่ามันทำอะไรพิมพ์stats:::cooks.distance.glm
ที่พรอมต์ R ที่นั่นคุณเห็นว่ามันถูกกำหนดให้เป็น
(res/(1 - hat))^2 * hat/(dispersion * p)
ที่res
มีเพียร์สันที่เหลือ (ในขณะที่ส่งกลับโดยinfluence()
ฟังก์ชั่น) hat
เป็นเมทริกซ์หมวก , p
คือจำนวนของพารามิเตอร์ในรูปแบบและdispersion
เป็นกระจายการพิจารณาสำหรับรุ่นปัจจุบัน (คงที่หนึ่งสำหรับโลจิสติกและ Poisson ถดถอยดูhelp(glm)
) กล่าวโดยสรุปมันคำนวณเป็นฟังก์ชั่นของการใช้ประโยชน์จากการสังเกตและค่ามาตรฐาน (เปรียบเทียบกับstats:::cooks.distance.lm
.)
สำหรับการอ้างอิงที่เป็นทางการมากขึ้นคุณสามารถติดตามการอ้างอิงในplot.lm()
ฟังก์ชันได้
Belsley, DA, Kuh, E. และ Welsch, RE (1980) การวินิจฉัยการถดถอย นิวยอร์ก: ไวลีย์
นอกจากนี้เกี่ยวกับข้อมูลเพิ่มเติมที่แสดงในกราฟิกเราสามารถดูเพิ่มเติมและดูว่า R ใช้
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) #
ที่rsp
มีป้ายกำกับว่า Std เพียร์สันที่เหลือ ในกรณีของ GLM, Std อย่างอื่นที่เหลือ (บรรทัด 172); ในทั้งสองกรณีอย่างไรก็ตามสูตรที่ใช้โดย R คือ (บรรทัดที่ 175 และ 178)
residuals(x, "pearson") / s * sqrt(1 - hii)
ที่เป็นเมทริกซ์หมวกกลับโดยฟังก์ชั่นทั่วไปhii
lm.influence()
นี่เป็นสูตรปกติสำหรับ std เหลือ:
r sJ= rJ1 - ชั่วโมง^J-----√
JJ
บรรทัดถัดไปของรหัส R วาดนุ่มนวลสำหรับระยะทางคุกของ ( add.smooth=TRUE
ในplot.lm()
โดยค่าเริ่มต้นให้ดูgetOption("add.smooth")
) และเส้นชั้นความสูง (ไม่ปรากฏในพล็อตของคุณ) สำหรับเหลือมาตรฐานที่สำคัญ (ดูcook.levels=
ตัวเลือก)