0

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

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

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

4

2 回答 2

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。这里使用的公式可能是最常用的公式,所以我假设这是您要查询的公式。

于 2017-03-08T08:58:25.670 回答
1

和包将对您有用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)
  )
于 2017-06-12T19:03:02.277 回答