ฉันพยายามจำลองการทำงานของเพื่อนร่วมงานและกำลังย้ายการวิเคราะห์จาก Stata ไปยัง R โมเดลที่เธอใช้เรียกใช้ตัวเลือก "cluster" ภายในฟังก์ชัน nbreg เพื่อจัดกลุ่มข้อผิดพลาดมาตรฐาน
ดูhttp://repec.org/usug2007/crse.pdfสำหรับคำอธิบายที่สมบูรณ์เกี่ยวกับสิ่งที่และเหตุผลของตัวเลือกนี้
คำถามของฉันคือวิธีการเรียกใช้ตัวเลือกเดียวกันนี้สำหรับการถดถอยทวินามลบภายใน R?
รูปแบบหลักในกระดาษของเรามีการระบุไว้ใน Stata ดังนี้
xi: nbreg cntpd09 logpop08 pcbnkthft07 pccrunion07 urbanpop pov00 pov002 edu4yr ///
black04 hispanic04 respop i.pdpolicy i.maxloan rollover i.region if isser4 != 1,
cluster(state)
และฉันได้แทนที่สิ่งนี้ด้วย
pday<-glm.nb(cntpd09~logpop08+pcbnkthft07+pccrunion07+urbanpop+pov00+pov002+edu4yr+
black04+hispanic04+respop+as.factor(pdpolicy)+as.factor(maxloan)+rollover+
as.factor(region),data=data[which(data$isser4 != 1),])
ซึ่งเห็นได้ชัดว่าขาดชิ้นส่วนข้อผิดพลาดของคลัสเตอร์
เป็นไปได้ไหมที่จะทำการจำลองแบบที่แน่นอน? ถ้าเป็นเช่นนั้นได้อย่างไร ถ้าไม่ทางเลือกที่เหมาะสมคืออะไร?
ขอบคุณ
[แก้ไข] ดังที่ระบุไว้ในความคิดเห็นฉันหวังว่าจะมีวิธีการแก้ปัญหาที่ไม่ได้นำฉันเข้าสู่อาณาจักรของโมเดลหลายระดับ ในขณะที่การฝึกอบรมของฉันช่วยให้ฉันเห็นว่าสิ่งเหล่านี้ควรเกี่ยวข้อง แต่ก็เป็นการก้าวกระโดดมากกว่าที่ฉันรู้สึกสบายใจ ฉันขุดและพบลิงก์นี้: http://landroni.wordpress.com/2012/06/02/fama-macbeth-and-cluster-robust-by-firm-and-time-standard-errors-in- R /
ชี้ไปที่รหัสที่ค่อนข้างตรงไปตรงมาเพื่อทำสิ่งที่ฉันต้องการ:
library(lmtest)
pday<-glm.nb(cntpd09~logpop08+pcbnkthft07+pccrunion07+urbanpop+pov00+pov002+edu4yr+
black04+hispanic04+respop+as.factor(pdpolicy)+as.factor(maxloan)+rollover+
as.factor(region),data=data[which(data$isser4 != 1),])
summary(pday)
coeftest(pday, vcov=function(x) vcovHC(x, cluster="state", type="HC1"))
สิ่งนี้ไม่ได้จำลองผลลัพธ์ที่ได้จากการวิเคราะห์ใน Stata แต่อาจเป็นเพราะมันถูกออกแบบมาให้ทำงานกับ OLS ไม่ใช่แบบทวินามลบ ดังนั้นการค้นหาจึงเกิดขึ้น คำแนะนำใด ๆ ที่ฉันไปผิดจะได้รับการชื่นชมมาก