ใช้น้ำหนักใน svyglm vs glm


18

ฉันต้องการทราบว่าการรักษาน้ำหนักแตกต่างกันระหว่างsvyglmและอย่างไรglm

ฉันใช้twangแพ็คเกจใน R เพื่อสร้างคะแนนความชอบซึ่งใช้เป็นน้ำหนักดังต่อไปนี้ (รหัสนี้มาจากtwangเอกสารประกอบ):

library(twang)
library(survey)
set.seed(1)

data(lalonde)

ps.lalonde <- ps(treat ~ age + educ + black + hispan + nodegree + married + re74 + re75,
 data = lalonde)

lalonde$w <- get.weights(ps.lalonde, stop.method="es.mean")
design.ps <- svydesign(ids=~1, weights=~w, data=lalonde)

glm1 <- svyglm(re78 ~ treat, design=design.ps)

summary(glm1)

...
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   6685.2      374.4  17.853   <2e-16 ***
treat         -432.4      753.0  -0.574    0.566    

เปรียบเทียบสิ่งนี้กับ:

glm11 <- glm(re78 ~ treat, weights=w , data=lalonde)
summary(glm11)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   6685.2      362.5  18.441   <2e-16 ***
treat         -432.4      586.1  -0.738    0.461  

ดังนั้นการประมาณพารามิเตอร์จะเหมือนกัน แต่ข้อผิดพลาดมาตรฐานสำหรับการรักษาแตกต่างกันมาก

การรักษาน้ำหนักต่างกันอย่างไรระหว่างsvyglmและglm?

คำตอบ:


11

มีน้ำหนักมากมายหลายประเภทและทำให้เกิดความสับสน คุณต้องระวังให้ดีเมื่อใช้ฟังก์ชั่นหรือซอฟต์แวร์ที่ใช้น้ำหนักแบบที่คุณคิดว่ากำลังใช้อยู่

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

น้ำหนักแบบสำรวจ (เป็น surveyglm) คือน้ำหนักที่คุณต้องการเพื่อให้ข้อผิดพลาดมาตรฐานที่ถูกต้องแก่คุณ

(นอกจากนี้ยังมีน้ำหนักความถี่น้ำหนักวิเคราะห์และน้ำหนักสำคัญ)


(+1) ขอบคุณ คุณรู้ข้อมูลอ้างอิงที่สามารถเข้าถึงได้สำหรับตุ้มน้ำหนักสำรวจนอกเหนือจากเอกสารสำหรับsurveyglm) หรือไม่
Joe King

1
ฉันชอบหนังสือของ Lumley: amazon.com/Complex-Surveys-Analysis-Series-Methodology/dp/…
Jeremy Miles

1
ขอบคุณสำหรับการอ้างอิงโดยการเข้าถึงฉันหมายถึงบางสิ่งบางอย่างที่มีอยู่ออนไลน์ขอโทษ ฉันไม่สามารถเข้าถึงห้องสมุดที่ดีได้อย่างง่ายดาย ....
Joe King

อืม ... ฉันจำไม่ได้ว่ากำลังเจออะไร แต่ฉันจะเห็นสิ่งที่ฉันสามารถหาได้
Jeremy Miles

9

surveyคำนวณข้อผิดพลาดมาตรฐานโดยคำนึงถึงการสูญเสียความแม่นยำที่นำเสนอโดยน้ำหนักตัวอย่าง น้ำหนักglmเพียงปรับน้ำหนักที่กำหนดให้กับข้อผิดพลาดในการประมาณกำลังสองน้อยที่สุดดังนั้นข้อผิดพลาดมาตรฐานไม่ถูกต้อง นี่คือตัวเลือกจาก Lumley (2010):

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

ดังนั้นหากไม่มีชั้นในการออกแบบของคุณคุณจะพบว่าการใช้sandwichจะทำให้คุณได้รับการประมาณค่า SE ที่เหมือนกันหรือใกล้เคียงกัน

library(sandwich)
coefs <- vcovHC(glm11, type="HC0")
lmtest::coeftest(glm11,coefs)

ในการทดสอบของฉันพวกเขาไม่ได้คำนวณอย่างแน่นอนเมื่อใช้ "HC0" หรือ "HC1" แต่ใกล้เคียงกันมาก svyglmกำลังรายงานค่า z แทนค่า t เช่นกัน


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