ประเภทใดที่เหลือและระยะทางของ Cook ที่ใช้สำหรับ GLM


11

ไม่มีใครรู้ว่าสูตรระยะทางของ Cook คืออะไร? สูตรระยะทางของ Cook ดั้งเดิมใช้ส่วนที่เหลือเป็นราย ๆ แต่ทำไม R จึงใช้ std เพียร์สันที่เหลือเมื่อคำนวณระยะทางพล็อตของ Cook สำหรับ GLM ฉันรู้ว่าเศษที่เหลือเป็นนักเรียนไม่ได้กำหนดไว้สำหรับ GLMs แต่สูตรคำนวณระยะทางของ Cook มีลักษณะอย่างไร

สมมติตัวอย่างต่อไปนี้:

numberofdrugs <- rcauchy(84, 10)
healthvalue <- rpois(84,75)
test <- glm(healthvalue ~ numberofdrugs, family=poisson)
plot(test, which=5) 

สูตรสำหรับระยะทางของ Cook คืออะไร กล่าวอีกนัยหนึ่งสูตรการคำนวณเส้นประสีแดงคืออะไร สูตรนี้สำหรับเพียร์สันที่เหลืออยู่นั้นมาจากที่ไหน?

ระยะทางของแม่ครัว

คำตอบ:


15

หากคุณดูที่รหัส (ประเภทง่าย ๆ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 เหลือ:

RsJ=RJ1-ชั่วโมง^J

JJ

บรรทัดถัดไปของรหัส R วาดนุ่มนวลสำหรับระยะทางคุกของ ( add.smooth=TRUEในplot.lm()โดยค่าเริ่มต้นให้ดูgetOption("add.smooth")) และเส้นชั้นความสูง (ไม่ปรากฏในพล็อตของคุณ) สำหรับเหลือมาตรฐานที่สำคัญ (ดูcook.levels=ตัวเลือก)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.