ฉันพยายามช่วยนักเรียนของเพื่อนร่วมงาน นักเรียนสังเกตและนับพฤติกรรมของนก (จำนวนสาย) ในชุดทดลอง จำนวนการโทรที่เกี่ยวข้องกับนกที่สังเกตได้เฉพาะในระหว่างการทดสอบแต่ละครั้งไม่สามารถระบุได้ แต่สามารถนับจำนวนนกที่สนับสนุนการบันทึกการโทรได้ ดังนั้นข้อเสนอแนะครั้งแรกของฉันคือการใส่หมายเลขของนกเป็นระยะชดเชยในรูปแบบ Poisson GLM เพราะฉะนั้นเราจะกระชับจำนวนที่คาดหวังของสายต่อนก
ปัญหานี้คือว่าในช่วงเวลาที่สังเกตหลายครั้งไม่มีนก (และดังนั้นจึงไม่มีสาย) ถูกสังเกต ซอฟแวร์ (R ในกรณีนี้) บ่นเพราะ (R บ่นเกี่ยวกับการที่มีข้อมูล แต่ที่เป็นอย่างหมดจดผลมาจากการถูก)y
-Inf
offset(log(nbirds))
-Inf
ฉันสงสัยว่าจริง ๆ แล้วเราจำเป็นต้องมีแบบจำลองอุปสรรค์ (หรือคล้ายกัน) ที่เรามีรูปแบบทวินามแยกต่างหากสำหรับ "การสังเกตการโทร" (หรือไม่) และแบบจำลองการนับที่ถูกตัดทอนสำหรับจำนวนการโทร (ต่อนก) ในสถานการณ์ที่มีการโทรโดยที่เรารวมคำศัพท์ชดเชยเฉพาะในส่วนการนับของแบบจำลอง
ต้องลองสิ่งนี้โดยใช้แพ็คเกจpsclใน R แต่ฉันยังคงได้รับข้อผิดพลาดเดิม:
mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
offset(log(NumberCOPO)) | 1, data = Data,
dist = "poisson")
เนื่องจากรหัส R เดียวกัน ( glm.fit
ใช้ภายในhurdle()
เพื่อให้พอดีกับส่วนของตัวนับจำนวน) กำลังตรวจสอบ-Inf
แม้ว่าฉันจะไม่คิดว่ามันจะส่งผลกระทบต่อโมเดลที่เหมาะสำหรับการสังเกตเหล่านั้น (นั่นเป็นข้อสมมติฐานที่ถูกต้องหรือไม่?)
ฉันสามารถสร้างแบบจำลองให้พอดีโดยการเพิ่มจำนวนเล็กน้อยลงในNumberCOPO
(พูด0.0001
) แต่นี่เป็นสิ่งที่เหลวไหลที่สุด
การเพิ่มการแก้ไขความต่อเนื่องเล็ก ๆ นี้ในทางปฏิบัติจะทำได้หรือไม่? หากไม่มีวิธีการอื่นที่เราควรพิจารณาเมื่อจัดการข้อมูลที่เราอาจต้องการใช้ offset ในโมเดล Poisson ที่ตัวแปร offset สามารถรับค่า 0 ได้ ตัวอย่างทั้งหมดที่ฉันเจอเป็นสถานการณ์ที่ตัวแปรออฟเซ็ต 0 ไม่สามารถเป็นไปได้