2016-10-17 3 views
0

私は2010-2014年の5年間のPUMSデータを扱っています。私は、標準誤差を見つけるために反復重みを使用しようとしています。標準エラー式はドキュメントにありますが、私はこれをMicrosoft ExcelまたはRの数式に変換するのに問題があります。これは、私が扱っている2つのプログラムです。 Excelで2つの変数をクロス集計してそれぞれの反復重みとPWGTPの合計を求めることができますが、より単純な方法があると思います。PUMSデータの直接標準誤差を決定するためにウエイトを使用する

PUMSデータとレプリケートウェイトを扱っている人はいますか?ドキュメントはここで見つけることができます:Rで

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

答えて

1

、あなたはこのような何かを行うことができます。

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 

これは、「あなたは人のレコードを使用していると仮定して、変数のためのSEを計算していますSEX "

平均、中央値、比率などのSEを計算するための他の数式があります。ここで使用されている式がおそらく最も一般的に使用されている式なので、これがあなたが調べているものと仮定しています。

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) 
) 
関連する問題