2016-05-31 56 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