计算R中的收入和财富份额

时间:2019-03-17 18:48:22

标签: r quantile percentile

我有一个简单的问题,但是我对十进制,分位数和百分位数的定义感到困惑。

我的目的是计算各种收入和财富份额。这就是总收入或财富占总人口x%的份额。

因此,假设一个人想要计算前10%的人拥有多少财富。

如何在R上执行此操作?我的以下计算正确吗?

MWE

w<-rgamma(10000, 3, scale = 1/3)

per <- quantile(w, c(0.1, 0.9))

top_1_percent <- (per[2]/sum(w))*100
bottom_90_percent <-per[1]/sum(w))*100

2 个答案:

答案 0 :(得分:1)

前10%应该是:

sum(w[w > per[2]])/sum(w)

或者:

sum(tail(sort(w), .1 * length(w))) / sum(w)

后90%为1-前10%。

答案 1 :(得分:1)

如果我对问题的理解正确,那么下面的方法将解决该问题。

set.seed(1234)    # Make the results reproducible

w <- rgamma(10000, 3, scale = 1/3)
per <- quantile(w, c(0.1, 0.9))

现在获得前10%的指数i1并汇总其财富。

i1 <- w >= per[2]
sum(w[i1])
#[1] 2196.856

底部10%的索引相同,索引为i2

i2 <- w <= per[1]
sum(w[i2])
#[1] 254.6375

请注意,我正在使用>=<=。请参阅帮助页面?quantile,以了解R可以执行的分位数计算类型。这由参数type给出。

编辑。

要计算前10%和后10%的财富比例和百分比,除以总财富,再乘以100

top10 <- sum(w[i1])/sum(w)
top10
#[1] 0.221291

100*top10
#[1] 22.1291

bottom10 <- sum(w[i2])/sum(w)
bottom10
#[1] 0.02564983

100*bottom10
#[1] 2.564983