Unlike the previous measure, the quintile share ratio is an inequality measure in itself, depending only of the income distribution to evaluate the degree of inequality. By definition, it can be described as the ratio between the income share held by the richest 20% and the poorest 20% of the population.
In plain terms, it expresses how many times the wealthier part of the population are richer than the poorest part. For instance, a \(QSR = 4\) implies that the upper class owns 4 times as much of the total income as the poor.
The quintile share ratio can be modified to a more general function of fractile share ratios. For instance, Cobham, Schlogl, and Sumner (2015)Cobham, Alex, Luke Schlogl, and Andy Sumner. 2015. “Inequality and the Tails: The Palma Proposition and Ratio Revisited.” Working Papers 143. United Nations, Department of Economics; Social Affairs. http://www.un.org/esa/desa/papers/2015/wp143_2015.pdf. presents interesting arguments for using the Palma index, defined as the ratio between the share of the 10% richest over the share held by the poorest 40%.
The R vardpoor package (Breidaks, Liberts, and Ivanova 2016Breidaks, Juris, Martins Liberts, and Santa Ivanova. 2016. “Vardpoor: Estimation of Indicators on Social Exclusion and Poverty and Its Linearization, Variance Estimation.” Riga, Latvia: CSB.), created by researchers at the Central Statistical Bureau of Latvia, includes a qsr coefficient calculation using the ultimate cluster method. The example below reproduces those statistics.
Load and prepare the same data set:
# load the convey packagelibrary(convey)# load the survey librarylibrary(survey)# load the vardpoor librarylibrary(vardpoor)# load the laeken librarylibrary(laeken)# load the synthetic EU statistics on income & living conditionsdata(eusilc)# make all column names lowercasenames( eusilc ) <-tolower( names( eusilc ) )# add a column with the row numberdati <- data.table::data.table(IDd =1:nrow(eusilc), eusilc)# calculate the qsr coefficient# using the R vardpoor libraryvarpoord_qsr_calculation <-varpoord(# analysis variableY ="eqincome", # weights variablew_final ="rb050",# row number variableID_level1 ="IDd",# row number variableID_level2 ="IDd",# strata variableH ="db040", N_h =NULL ,# clustering variablePSU ="rb030", # data.tabledataset = dati, # qsr coefficient functiontype ="linqsr",# poverty threshold rangeorder_quant = 50L ,# get linearized variableoutp_lin =TRUE )# construct a survey.design# using our recommended setupdes_eusilc <-svydesign( ids =~ rb030 , strata =~ db040 , weights =~ rb050 , data = eusilc )# immediately run the convey_prep function on itdes_eusilc <-convey_prep( des_eusilc )# coefficients do matchvarpoord_qsr_calculation$all_result$value
# variances do not match exactlyattr( svyqsr( ~ eqincome , des_eusilc ) , 'var' )
## eqincome 0.001810537
##  0.001807323
# standard errors do not match exactlyvarpoord_qsr_calculation$all_result$se
##  0.04251263
SE( svyqsr( ~ eqincome , des_eusilc ) )
## eqincome 0.04255041
The variance estimate is computed by using the approximation defined in (1.1), where the linearized variable \(z\) is defined by (1.2). The functions convey::svygpg and vardpoor::lingpg produce the same linearized variable \(z\).
However, the measures of uncertainty do not line up, because library(vardpoor) defaults to an ultimate cluster method that can be replicated with an alternative setup of the survey.design object.
# within each strata, sum up the weightscluster_sums <-aggregate( eusilc$rb050 , list( eusilc$db040 ) , sum )# name the within-strata sums of weights the `cluster_sum`names( cluster_sums ) <-c( "db040" , "cluster_sum" )# merge this column back onto the data.frameeusilc <-merge( eusilc , cluster_sums )# construct a survey.design# with the fpc using the cluster sumdes_eusilc_ultimate_cluster <-svydesign( ids =~ rb030 , strata =~ db040 , weights =~ rb050 , data = eusilc , fpc =~ cluster_sum )# again, immediately run the convey_prep function on the `survey.design`des_eusilc_ultimate_cluster <-convey_prep( des_eusilc_ultimate_cluster )# matchesattr( svyqsr( ~ eqincome , des_eusilc_ultimate_cluster ) , 'var' )