R调查权重标准误差

4
我在调查中计算标准误差(SE)时遇到了一些问题。以下是我的一个例子,我尝试使用R中的survey包。
(下面示例中的fpc等于每个分层观察值的数量)

生成数据的代码:

id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) 
strata = c(6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8) 
weight = c(60, 75, 85, 140, 170, 175, 270, 310, 325, 785, 1450, 3920) 
fpc = c(8, 8, 8, 7, 7, 7, 6, 6, 6, 6, 6, 6)
answer = c("2", "2", "3", "1", "2", NA, NA, 2, "3", NA, "1", NA)
df = data.frame(id, strata, weight, fpc, answer)
df <- df[complete.cases(df), ]

然后我尝试使用survey包计算均值和标准误:

dstrat<-svydesign(id=~1,strata=~strata, weights=~weight, data=df, fpc=~fpc)
svymean(~answer, dstrat)

        mean    SE
answer1 0.60803 0.2573
answer2 0.23518 0.1755
answer3 0.15679 0.1479

我的第一个问题是:我如何考虑在我的研究中未回答的观察值的权重?在上面的示例中,我在运行函数之前删除了我的NA观察值,但我想包括这些信息。我认为,如果我对具有最大权重的观察值有答案或没有答案,SE会更大或更小?
我的第二个问题是:如何计算“净值”的SE? 假设:
answer1 = good  
answer2 = neutral  
answer3 = bad 

我可以计算出“净值”,即答案1 - 答案3 = 0.60803 - 0.15679 = 0.45124。请问我如何获得这个“净值”的标准误差?

4
我投票关闭此问题,因为它属于[stats.SE]。 - double-beep
1个回答

4

您的第一个问题应该在stats.stackexchange上提问,但我认为答案是当数据缺失时无法计算SE。但以下是如何解决第二个问题的SE:

library(survey)
id <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) 
strata <- c(6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8) 
weight <- c(60, 75, 85, 140, 170, 175, 270, 310, 325, 785, 1450, 3920) 
fpc <- c(8, 8, 8, 7, 7, 7, 6, 6, 6, 6, 6, 6)
answer <- c("2", "2", "3", "1", "2", NA, NA, 2, "3", NA, "1", NA)
df <- data.frame(id=id, strata=strata, weight=weight, fpc=fpc, answer=answer)


# this is probably a mistake
df <- df[complete.cases(df), ]
# in most data sets, you should be using na.rm=TRUE later
# and not tossing out statements before the `svydesign` gets run

df$ones <- as.numeric( df$answer %in% 1 )

df$threes <- as.numeric( df$answer %in% 3 )

dstrat<-svydesign(id=~1,strata=~strata, weights=~weight, data=df, fpc=~fpc)

a <- svymean( ~ ones + threes , dstrat , na.rm = TRUE )

svycontrast(a, list(avg=c(0,0), diff=c(1,-1)))

1
非常感谢您的出色回复。使用svycontrast函数计算“净值”的SE的方法完美无缺。关于我的NA删除问题,您是完全正确的。我最初尝试在svydesign函数中放置na.rm = TRUE,但没有成功。正如您所指出的那样,我的na.rm = TRUE应该在svymean函数中。对于我的问题,即在计算SE时考虑非响应权重,我认为这应该是可能的。我不知道如何做,也许我会采纳您的建议,在stats.stackexchange上发布这个具体问题。 - CaptHaddock
在 svydesign 之前删除它们的原因是错误的吗?您有引用或解释吗?这有什么区别? - Kevin Carriere
@KevinCarriere https://gist.github.com/ajdamico/9b3232a1d986b3460baaa90f5fed3402 - Anthony Damico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接