使用重复权重确定PUMS数据的直接标准误差

时间:2016-10-17 16:18:53

标签: r excel standard-error census

我正在使用2010-2014 5年期PUMS数据。我试图使用复制权重来查找标准错误。标准错误公式在文档中,但我无法将其转换为Microsoft Excel或R中的公式,这是我正在使用的两个程序。我可以在Excel中交叉使用两个变量来获得每个重复权重和PWGTP的总和,但我想有一种更简单的方法。

有没有人在这里使用PUMS数据和重复权重?文档可以在这里找到:

http://www.census.gov/programs-surveys/acs/technical-documentation/pums/documentation.2014.html

2 个答案:

答案 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)

surveysrvyr套餐对您有用。

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)
  )