2016-05-31 59 views
3

我正在使用美国社区调查微观数据,使用survey包,并希望计算一些基本的收入不平等统计。我已经设置了以下为我的设计:使用R调查软件包测量收入不平等

testsurv <- svrepdesign(data=test, repweights = test[,8:87], weights = test$HHWT, 
        combined.weights=TRUE, type = "Fay", rho = 0.5,scale=4/80, 
        rscales = rep(1, 80), mse=TRUE) 

从这一点,我想通过计算每年基尼系数,以及收入的比例位数也由一年。生成位数与相关的错误是直接使用svybysvyquantile

quants <- svyby(~INCOME, ~YEAR, testsurvey, svyquantile, 
       quantiles=c(0.9, 0.75, 0.5, 0.25, 0.1), keep.var=TRUE) 

这使我想到我的第一个问题:我如何计算的,如果我的收入分位数的比例(例如90/10)的标准误差每个分位数都有基于重量的重复错误?我尝试使用svyratio,但这是针对整个变量的比率,而不是变量中选定的观察值。

第二个问题:有没有一种方法可以使用现有功能从reldist计算基尼系数(带有基于复制的错误)在survey之内?我尝试使用withReplicates,但它不能很好地工作,也许是因为gini命令它的参数作为变量,然后权重,但指令withReplicates指定相反的顺序。我尝试了两种方法,但都没有成功。例如,这其中HHWT是样品重量:

> withReplicates(testsurv, gini(~HHWT, ~INCOME)) 

即产生以下错误消息:

Error in sum(weights) : invalid 'type' (language) of argument 
In addition: Warning message: 
In is.na(x) : is.na() applied to non-(list or vector) of type 'language' 

回答

1

使用R传达包。这还不是可在CRAN但你可以

devtools::install_github("djalmapessoa/convey") 

快速安装它的第90层〜10的比例,使用?svyqsr功能,并设置alpha=0.1,因为它默认为第80和第20

为基尼系数,使用?svygini函数

只要你有acs复制加权调查设计,这些都应该是直接计算。请务必在拨打svrepdesign后立即使用convey_prep功能!

+0

谢谢安东尼 - 我期待着尝试一下(也感谢你的伟大的网站,这是一个很好的资源)! – user115457

+0

它现在在CRAN –

+0

安东尼 - 这是一个荒谬的迟到回应,但我想感谢你指向这个梦幻般的包。这是一项伟大的贡献,对我的项目来说是不可或缺的。 – user115457