ฟังก์ชันต้นทุนสำหรับการตรวจสอบแบบจำลองการถดถอยของปัวซอง


12

สำหรับข้อมูลนับที่ฉันรวบรวมฉันใช้การถดถอยปัวซองเพื่อสร้างแบบจำลอง ฉันไม่นี้โดยใช้ฟังก์ชั่นในการวิจัยที่ผมใช้glm family = "poisson"เพื่อประเมินตัวแบบที่เป็นไปได้ (ฉันมีตัวทำนายหลายตัว) ฉันใช้ AIC จนถึงตอนนี้ดีมาก ตอนนี้ฉันต้องการทำการตรวจสอบข้าม ฉันประสบความสำเร็จในการทำสิ่งนี้โดยใช้cv.glmฟังก์ชั่นจากbootแพ็คเกจ จากเอกสารของcv.glmฉันเห็นว่าเช่นสำหรับข้อมูลทวินามคุณต้องใช้ฟังก์ชั่นค่าใช้จ่ายเฉพาะเพื่อรับข้อผิดพลาดการทำนายที่มีความหมาย อย่างไรก็ตามฉันไม่รู้เลยว่าฟังก์ชั่นค่าใช้จ่ายใดเหมาะสมfamily = poissonและการค้นหาโดย Google ที่กว้างขวางไม่ได้ให้ผลลัพธ์ที่เฉพาะเจาะจง คำถามของฉันคือทุกคนมีแสงที่จะหลั่งซึ่งฟังก์ชันต้นทุนเหมาะสมสำหรับcv.glmกรณีของ poisson glm


1
ฟังก์ชันcv.glmnetในแพ็คเกจglmnetใช้type.measure="deviance"สำหรับตระกูลปัวซอง
rcs

อย่างเคร่งครัดเอกสารแสดงให้เห็นว่าเหมาะสมที่จะใช้ฟังก์ชั่นต้นทุนเฉพาะสำหรับข้อมูลไบนารี
Korone

@corone ของไม่ใช่ข้อมูลต่อเนื่องหรือข้อมูลไบนารี ดังนั้นฉันจึงกำลังมองหาฟังก์ชันต้นทุนที่เหมาะสมสำหรับการนับข้อมูล
พอล Hiemstra

1
ฉันไม่คิดว่าความแตกต่างของข้อมูลจะทำให้เกิดความแตกต่างอย่างมากที่นี่เว้นแต่การนับของคุณจะน้อยมาก ปัญหาค่อนข้างเกี่ยวกับการกระจายของข้อมูล สำหรับข้อมูลไบนารีการทำนายความน่าจะเป็นอย่างต่อเนื่องระหว่าง 0 และ 1 แต่การตอบสนองอยู่เสมอ 0 หรือ 1 ในตัวอย่างของพวกเขาบังคับให้ค่าใช้จ่ายเป็น "ถูกต้อง" หรือ "ผิด" และนับจำนวนสิทธิ์และความผิด คุณกังวลเรื่องความต่อเนื่องเป็นพิเศษหรือไม่? ฉันจะเพิ่ม PS ลงในคำตอบเพื่อแก้ไขความต่อเนื่อง
Korone

คำตอบ:


12

สมมติว่าไม่มีอะไรพิเศษในกรณีของคุณฉันคิดว่ามีข้อโต้แย้งที่ดีสำหรับการใช้ค่าเริ่มต้น (Mean Square Error) หรือใช้ค่าเฉลี่ยของข้อผิดพลาดของบันทึกหรือแม้แต่ข้อผิดพลาดไคสแควร์

วัตถุประสงค์ของฟังก์ชั่นค่าใช้จ่ายคือเพื่อแสดงให้เห็นว่า "อารมณ์เสีย" คุณมีการคาดการณ์ที่ผิดโดยเฉพาะสิ่งที่ "ผิด" รบกวนคุณมากที่สุด สิ่งนี้มีความสำคัญอย่างยิ่งสำหรับการตอบกลับแบบไบนารี่

Mean Square Error (ของการตอบกลับ)

C=1ni(YiY^i)2

การใช้ MSE นั้นคุณมีความไวต่อข้อผิดพลาดจากด้านบนและด้านล่างเท่ากันและมีความอ่อนไหวเท่า ๆ กันสำหรับการคาดการณ์ขนาดใหญ่และขนาดเล็ก นี่เป็นสิ่งมาตรฐานที่น่าทำและดังนั้นฉันไม่คิดว่าจะขมวดคิ้วในสถานการณ์ส่วนใหญ่

Mean Square Error (ของบันทึกการตอบกลับ)

C=1ni(lnYilnY^i)2

เนื่องจากคุณกำลังทำงานกับข้อมูลนับอาจเป็นที่ถกเถียงกันอยู่ว่าคุณไม่ได้เป็นแบบสมมาตรหรือขนาด การนับ 10 โดยการคาดการณ์ 10 นั้นแตกต่างจากการคาดคะเน 1,000 นี่เป็นฟังก์ชันต้นทุน "บัญญัติ" เนื่องจากคุณได้จับคู่ต้นทุนกับฟังก์ชันลิงก์ สิ่งนี้ทำให้มั่นใจได้ว่าค่าใช้จ่ายตรงกับการกระจายผลต่างที่สมมติในโมเดล

ข้อผิดพลาด Chi-Squared

C=1ni(YiY^i)2Y^i

วิธีที่สามคือใช้ข้อผิดพลาด chi-squared สิ่งนี้อาจน่าสนใจเป็นพิเศษหากคุณกำลังเปรียบเทียบ GLM ของคุณกับรุ่นอื่น ๆ ที่ใช้การนับจำนวน - โดยเฉพาะอย่างยิ่งหากมีปัจจัยใน GLM ของคุณ เช่นเดียวกับการตอบสนองบันทึกข้อผิดพลาดสิ่งนี้จะปรับขนาดด้วยขนาด แต่ก็สมมาตรรอบจำนวนที่คาดการณ์ไว้ ตอนนี้คุณกำลังประเมินความดีที่เหมาะสมโดยพิจารณาจากความผิดพลาดเป็นเปอร์เซ็นต์


เมื่อวันที่ Discreteness

คำถามอ้างอิงตัวอย่างเอกสารที่พวกเขามีตัวแปรตอบสนองแบบไบนารีดังนั้นใช้ฟังก์ชั่นค่าใช้จ่ายที่แตกต่างกัน ปัญหาสำหรับการตอบกลับแบบไบนารีคือ GLM จะคาดการณ์จำนวนจริงระหว่าง 0 ถึง 1 แม้ว่าการตอบสนองจะเป็น 0 หรือ 1 เสมอมันใช้ได้อย่างสมบูรณ์ที่จะบอกว่ายิ่งหมายเลขนั้นใกล้กับการตอบสนองที่ถูกต้องมากเท่าไร การคาดการณ์ แต่บ่อยครั้งที่คนไม่ต้องการสิ่งนี้ เหตุผลที่คนมักจะต้องทำอย่างใดอย่างหนึ่งราวกับว่ามันเป็น 0 หรือ 1 และจะใช้อะไรน้อยกว่า 0.5 เป็นการคาดการณ์สำหรับ 0 ในกรณีนี้มันทำให้รู้สึกถึงการนับจำนวนของการคาดการณ์ที่ "ผิด" การโต้เถียงที่นี่คือสำหรับคำถามจริง / เท็จคุณสามารถถูกหรือผิด - ไม่มีการไล่ระดับของความผิด

ในกรณีของคุณคุณมีข้อมูลนับ ที่นี่เป็นเรื่องธรรมดามากที่จะยอมรับการคาดการณ์ที่ไม่ได้อยู่ในการสนับสนุนเดียวกับการตอบสนอง ตัวอย่างการคาดการณ์ของเด็ก 2.4 คนต่อครอบครัวหรือ 9.7 คนต่อปี โดยทั่วไปแล้วคนเราจะไม่พยายามทำอะไรเกี่ยวกับเรื่องนี้เพราะมันไม่เกี่ยวกับการ "ถูก" หรือ "ผิด" เพียงแค่ใกล้เคียงที่สุดเท่าที่จะทำได้ หากคุณต้องมีการทำนายว่าเป็นจำนวนเต็มอาจเป็นเพราะคุณมีอัตราการนับที่ต่ำมากดังนั้นจึงไม่มีเหตุผลที่คุณจะไม่สามารถปัดเศษการทำนายได้ก่อนและนับ "จำนวนเต็ม" หรือข้อผิดพลาด ในกรณีนี้การแสดงออกทั้งสามข้างต้นยังคงมีผลอยู่ แต่คุณต้องปัดเศษก่อนY^


แทนที่จะทำงานกับข้อผิดพลาดกำลังสองเฉลี่ยของข้อผิดพลาดกำลังสองเฉลี่ยของการตอบสนองการแปลงบันทึกมันอาจจะดีกว่าสำหรับ GLMs ที่จะใช้ข้อผิดพลาดกำลังสองเฉลี่ยถ่วงน้ำหนักโดยใช้ 1 / น้ำหนักแปรปรวน (กำหนดโดยช่อง $ weights ของเอาต์พุต glm 1 / E (Y)) ฉันเชื่อว่าใช้ได้กับ GLM ทุกประเภท
Tom Wenseleers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.