我有一个简单的问题,但我对如何定义十分位数,分位数,百分位数感到困惑。
我的目的是计算各种收入和财富份额。这是占总收入或财富的百分之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