แบบจำลองการนับศูนย์ที่ไม่พองใน R: ประโยชน์ที่แท้จริงคืออะไร


11

สำหรับการวิเคราะห์การนับนกศูนย์ที่สูงเกินจริงผมอยากจะใช้รุ่นนับเป็นศูนย์ที่สูงขึ้นโดยใช้แพคเกจ R pscl อย่างไรก็ตามเมื่อดูตัวอย่างที่ให้ไว้ในเอกสารสำหรับหนึ่งในฟังก์ชั่นหลัก ( ? zeroinfl ) ฉันเริ่มสงสัยว่าประโยชน์ที่แท้จริงของรุ่นเหล่านี้คืออะไร จากตัวอย่างโค้ดที่ให้ไว้ฉันคำนวณปัวซองมาตรฐาน, แบบกึ่งกลาง - ปัวซองและโมเดลไบโอโนเมียลบ, ปัวซองแบบ zero-inflated แบบง่าย, และแบบจำลองทวินามลบ, แบบปัวซองแบบพองตัวแบบศูนย์และแบบลบลบทวินาม จากนั้นฉันตรวจสอบฮิสโทแกรมของข้อมูลที่ตรวจพบและข้อมูลที่ติดตั้ง (นี่คือรหัสสำหรับการทำซ้ำ)

library(pscl)
data("bioChemists", package = "pscl")

## standard count data models
fm_pois  <- glm(art ~ .,    data = bioChemists, family = poisson)
fm_qpois <- glm(art ~ .,    data = bioChemists, family = quasipoisson)
fm_nb    <- glm.nb(art ~ ., data = bioChemists)

## with simple inflation (no regressors for zero component)
fm_zip  <- zeroinfl(art ~ . | 1, data = bioChemists)
fm_zinb <- zeroinfl(art ~ . | 1, data = bioChemists, dist = "negbin")

## inflation with regressors
fm_zip2  <- zeroinfl(art ~ fem + mar + kid5 + phd + ment | fem + mar + kid5 + phd + 
                     ment, data = bioChemists)
fm_zinb2 <- zeroinfl(art ~ fem + mar + kid5 + phd + ment | fem + mar + kid5 + phd + 
                     ment, data = bioChemists, dist = "negbin")

## histograms
breaks <- seq(-0.5,20.5,1)
par(mfrow=c(4,2))
hist(bioChemists$art,  breaks=breaks)
hist(fitted(fm_pois),  breaks=breaks)
hist(fitted(fm_qpois), breaks=breaks)
hist(fitted(fm_nb),    breaks=breaks)
hist(fitted(fm_zip),   breaks=breaks)
hist(fitted(fm_zinb),  breaks=breaks)
hist(fitted(fm_zip2),  breaks=breaks)
hist(fitted(fm_zinb2), breaks=breaks)!

ฮิสโตแกรมของข้อมูลที่ตรวจสอบและติดตั้ง

ฉันไม่เห็นความแตกต่างพื้นฐานระหว่างแบบจำลองที่แตกต่างกัน (นอกเหนือจากข้อมูลตัวอย่างนั้นไม่ปรากฏว่า "เป็นศูนย์ที่สูงเกินจริง" สำหรับฉัน ... ); อันที่จริงไม่มีตัวแบบใดที่ให้ผลประมาณค่าศูนย์แบบครึ่งทาง ใครสามารถอธิบายได้ว่าอะไรคือข้อดีของรุ่นที่สูงเกินจริง ฉันคิดว่าคงต้องมีเหตุผลที่จะเลือกสิ่งนี้เป็นตัวอย่างสำหรับฟังก์ชั่น

คำตอบ:


15

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

plot(fitted(fm_pois), fitted(fm_zinb))

แสดงให้เห็นว่าค่าที่คาดการณ์เกือบจะเหมือนกัน

ในชุดข้อมูลที่มีอัตราเงินเฟ้อเป็นศูนย์มากขึ้นรุ่น ZI ให้ผลลัพธ์ที่ต่างกัน (และมักจะเหมาะสมกว่า) กว่าปัวซอง

อีกวิธีในการเปรียบเทียบขนาดของแบบจำลองคือการเปรียบเทียบขนาดของสารตกค้าง:

boxplot(abs(resid(fm_pois) - resid(fm_zinb)))

แสดงให้เห็นว่าแม้ที่นี่เศษวัสดุจากปัวซงยังเล็กกว่าของ ZINB หากคุณมีความคิดเกี่ยวกับขนาดของส่วนที่เหลือซึ่งเป็นปัญหาจริงๆคุณสามารถดูสัดส่วนของส่วนที่เหลือในแต่ละรุ่นที่อยู่เหนือ เช่นถ้าถูกปิดมากกว่า 1 ก็ไม่เป็นที่ยอมรับ

sum(abs(resid(fm_pois) > 1))
sum(abs(resid(fm_zinb) > 1))

แสดงให้เห็นว่าหลังนั้นดีขึ้นเล็กน้อย - เหลือน้อยกว่า 20 ครั้ง

จากนั้นคำถามคือความซับซ้อนที่เพิ่มขึ้นของแบบจำลองนั้นคุ้มค่ากับคุณหรือไม่


6

Xผม~Pโอผมs(μ)xผมμ^ผมxผม* * * *Xผม* * * *~Pโอผมs(μ^)xผม* * * *xผม


คุณต้องการแนะนำการเปรียบเทียบแบบอื่นแบบใด
user7417

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