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

Calculate income and wealth shares in R

我有一个简单的问题,但我对十分位数、分位数、百分位数的定义方式感到困惑。

我的目的是计算各种收入和财富份额。即总收入或财富占总人口 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

前 10% 应该是:

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

或者:

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

后 90% 为 1 - 前 10%。

如果我理解正确,下面就可以了。

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