我正在使用2010-2014 5年期PUMS数据。我试图使用复制权重来查找标准错误。标准错误公式在文档中,但我无法将其转换为Microsoft Excel或R中的公式,这是我正在使用的两个程序。我可以在Excel中交叉使用两个变量来获得每个重复权重和PWGTP的总和,但我想有一种更简单的方法。
有没有人在这里使用PUMS数据和重复权重?文档可以在这里找到:
http://www.census.gov/programs-surveys/acs/technical-documentation/pums/documentation.2014.html
答案 0 :(得分:1)
在R中,你可以这样做:
wgt <- "PWGTP"
var <- "SEX"
est <- aggregate(PUMS[[wgt]], by=list(PUMS[[var]]), FUN=sum, simplify=T, drop=F)
err <- vector("list", 80)
for(i in 1:80){
err[[i]] <- aggregate(PUMS[[paste0(wgt, i)]], by=list(PUMS[[var]]), FUN=sum, simplify=T, drop=F)
err[[i]] <- (err[[i]][,2] - est[,2])**2
}
SE <- ((4/80)*colSums(do.call(rbind, err)))**.5
这假设您正在使用人员记录并为变量“SEX”计算SE。
还有其他公式用于计算均值,中位数,比例等的SE。这里使用的公式可能是最常用的公式,所以我假设这是你要询问的那个。
答案 1 :(得分:0)
survey
和srvyr
套餐对您有用。
library(tidyverse)
library(survey)
library(srvyr)
hga <- read_csv("ss11hga.csv") # georgia, but it will be the same for you
# survey design, specifying replicate weights
pumsd_hh <- hga %>%
as_survey_rep(
weights = WGTP,
repweights = starts_with("WGTP"),
combined_weights = TRUE
)
# calculate average income and standard error by size of household
pumsd_hh %>%
filter(!is.na(FINCP)) %>%
mutate(NP = ifelse(NP > 5, 5, NP)) %>%
group_by(NP) %>%
summarise(
survey_mean(FINCP, na.rm = TRUE)
)