在svyglm和glm中使用权重


18

我想知道权重的处理之间的区别svyglmglm

我正在twangR中使用软件包创建倾向得分,然后将其用作权重,如下所示(此代码来自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有何不同?

Answers:


11

有很多不同种类的权重,它们会使人感到困惑。当您使用不同的功能或软件时,您必须非常小心,以为您认为自己正在使用的权重。

svyglm函数使用调查权重-这些权重权衡每个案例的重要性,以使其具有代表性(在twang之后彼此相对)。我不确定glm()中的权重是多少-我认为它们代表度量的准确性。(如果您使用的是二项式族,则它们具有不同的含义)。

测量权重(以Surveyglm为单位)是您想要的权重,以便为您提供正确的标准误差。

(还有频率权重,分析权重和重要性权重)。


(+1)谢谢。除了的文档外,您是否知道调查权重的可访问参考surveyglm
乔·金


1
谢谢您的参考。我没有容易获得好的库....
乔金

嗯...我不记得遇到任何事情了,但是我会发现我能找到的。
Jeremy Miles

9

survey考虑到采样权重引起的精度损失,计算标准误差。权重glm仅调整最小二乘估计中误差的权重,因此标准误差不正确。以下是Lumley(2010)的精选:

在基于模型的分析中,有必要正确指定模型的随机部分以获取正确的标准误差,但是我们所有的标准误差估计值都是基于设计的,因此无论模型如何均有效。值得注意的是,有时在基于模型的回归分析中使用的“三明治”或“模型稳健”或“异方差一致性”标准误差与我们将使用的基于设计的标准误差几乎相同;主要区别在于分层的处理。

因此,在您的设计中没有层次,您可能会发现使用sandwich会获得相同或接近相同的SE估计值。

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

在我的测试中,使用“ HC0”或“ HC1”时它们并没有精确计算出来,但是非常接近。svyglm现在也报告了一个z值而不是t值。


2
如果对将来的读者有用: coeftest来自R包lmtest
swihart
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.