Рассчитать долю дохода и богатства в 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

person msh855    schedule 17.03.2019    source источник


Ответы (2)


Первые 10% должны составлять:

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

Альтернативно:

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

Нижние 90% составляют 1 - верхние 10%.

person G. Grothendieck    schedule 17.03.2019

Если я правильно понял вопрос, это подойдет вам следующим образом.

set.seed(1234)    # Make the results reproducible

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

Теперь получите индекс i1 на 10% лучших и просуммируйте их богатство.

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
person Rui Barradas    schedule 17.03.2019
comment
вы пропустили последний шаг, который, я полагаю, равен `sum (w [i]) / sum (w)» - person msh855; 17.03.2019
comment
@ msh855 Готово, см. правку. Я не понял подобного вопроса, в вопросе написано , чтобы вычислить, сколько богатства владеют 10% самых богатых. - person Rui Barradas; 17.03.2019