✔️ is defined in terms of an interpretable utility function
✔️ has a direct (but non-linear) relationship to `svygei`
✔️ has an interpretable inequality aversion parameter
❌ does not handle zeroes or negative incomes
❌ the decomposition interpretation is not exactly the same as the GEI, but very similar (not implemented, though)
❌ not very common
Dalton (1920Dalton, Hugh. 1920. “The Measurement of the Inequality of Incomes.” The Economic Journal 30 (September). https://doi.org/10.2307/2223525.) pointed out one of the most important facts about the economic theory of income inequality measurement: every income inequality measure has an implicit SWF.12 This is the subject of an interesting discussion between the British and the Italian schools of inequality measurement. More formally, Atkinson (1970Atkinson, Anthony B. 1970. “On the Measurement of Inequality.” Journal of Economic Theory 2 (3): 244–63. https://ideas.repec.org/a/eee/jetheo/v2y1970i3p244-263.html.) represent the SWF by an additively separable and symmetric function
\[ W ( y ) = \int_0^{+\infty} U ( y ) f( y ) dy \] where \(U( y )\) is a twice differentiable, increasing and concave utility function. The utility function “weights” the individual income \(y\) on the (overall) social welfare.13 The utility is not what the welfare that the individual attributes to its own income, but the social welfare that the society attributes to an individual with that level of income. Saying that “\(U ( y )\) is increasing in \(y\)” means that more income means more individual utility, while “\(U ( y )\) is concave” means that (individual) welfare grows less for every income increase.
Atkinson (1970, 250Atkinson, Anthony B. 1970. “On the Measurement of Inequality.” Journal of Economic Theory 2 (3): 244–63. https://ideas.repec.org/a/eee/jetheo/v2y1970i3p244-263.html.) that we should measure inequality by using the Equally Distributed Equivalent level of income \(y_{EDE}\). The \(y_{EDE}\) is the level of income that would lead to the observed level welfare if income was equally distributed. In mathematical terms, the \(y_{EDE}\) is defined as:
\[ \begin{aligned} W( y_{EDE} \cdot \mathbb{1} ) &= W( y ) \\ \int_0^{+\infty} U ( y_{EDE} ) f( y ) dy &= \int_0^{+\infty} U ( y ) f( y ) dy \\ U ( y_{EDE} ) \int_0^{+\infty} f( y ) dy &= \int_0^{+\infty} U ( y ) f( y ) dy \\ \therefore \quad y_{EDE} :\quad U ( y_{EDE} ) &= \int_0^{+\infty} U ( y ) f( y ) dy \end{aligned} \]
Using this concept, Atkinson (1970Atkinson, Anthony B. 1970. “On the Measurement of Inequality.” Journal of Economic Theory 2 (3): 244–63. https://ideas.repec.org/a/eee/jetheo/v2y1970i3p244-263.html.) proposed measuring inequality as
\[ I = 1 - \frac{ y_{EDE}}{ \mu } \]
where \(\mu\) is the average income. Once a suitable form \(U\) is defined, this index has a direct interpretation in terms of social welfare; e.g., for a given level \(I\), it means that, if we could redistribute income equally from the current distribution, we would only need about \((1 - I)\%\) of the current average income to reach the same level of social welfare.
However, in order to completely rank distributions, we need to impose more restrictions on the form of \(U(y)\). Based on results from the theory of choice under uncertainty, Atkinson (1970Atkinson, Anthony B. 1970. “On the Measurement of Inequality.” Journal of Economic Theory 2 (3): 244–63. https://ideas.repec.org/a/eee/jetheo/v2y1970i3p244-263.html.) suggests a class of utility functions given by
\[ U( y , \epsilon ) = \begin{cases} A + B \frac{y^{1 - \epsilon}}{1 - \epsilon} , &\epsilon \neq 1 \\ \log y , &\epsilon \neq 1 \end{cases} \]
where \(\epsilon\) is an inequality-aversion (scalar) parameter: as it approaches infinity, more weight is given to lower incomes.
Combining this with his proposed approach, Atkinson (1970Atkinson, Anthony B. 1970. “On the Measurement of Inequality.” Journal of Economic Theory 2 (3): 244–63. https://ideas.repec.org/a/eee/jetheo/v2y1970i3p244-263.html.) derives what came to be known as the Atkinson index:
\[ I_\epsilon = \begin{cases} 1 - \bigg[ \int_0^{+ \infty} \big( {\frac{y}{\mu} } \big)^{1-\epsilon} f(y) dy \bigg]^{1/(1-\epsilon)} , &\epsilon \neq 1 \\ 1 - \exp \bigg[ \int_0^{+ \infty} \log \frac{y}{\mu} f(y) dy \bigg] , &\epsilon \to 1 \end{cases} \]
Although the above form is given terms of a continuous distribution, the equivalent plug-in estimator we use comes from Biewen and Jenkins (2003Biewen, Martin, and Stephen Jenkins. 2003. “Estimation of Generalized Entropy and Atkinson Inequality Indices from Complex Survey Data.” Discussion Papers of DIW Berlin 345. DIW Berlin, German Institute for Economic Research. http://EconPapers.repec.org/RePEc:diw:diwwpp:dp345.):
\[ \widehat{A}_\epsilon = \begin{cases} 1 - \widehat{U}_0^{ - \epsilon/(1 - \epsilon) } \widehat{U}_1^{ -1 } \widehat{U}_{1 - \epsilon}^{ 1/(1 - \epsilon) } , &\text{if } \epsilon \in \mathbb{R}_+ \setminus\{ 1 \} \\ 1 - \widehat{U}_0 \widehat{U}_0^{-1} exp( \widehat{T}_0 \widehat{U}_0^{-1} ), &\text{if } \epsilon \rightarrow1 \end{cases} \]
In July 2006, Jenkins (2008Jenkins, Stephen. 2008. “Estimation and Interpretation of Measures of Inequality, Poverty, and Social Welfare Using Stata.” North American Stata Users' Group Meetings 2006. Stata Users Group. http://EconPapers.repec.org/RePEc:boc:asug06:16.) presented at the North American Stata Users’ Group Meetings on the stata Atkinson Index command. The example below reproduces those statistics.
Load and prepare the same data set:
# load the convey package
library(convey)
# load the survey library
library(survey)
# load the foreign library
library(foreign)
# create a temporary file on the local disk
tf <- tempfile()
# store the location of the presentation file
presentation_zip <-
"https://web.archive.org/web/20150928053959/http://repec.org/nasug2006/nasug2006_jenkins.zip"
# download jenkins' presentation to the temporary file
download.file(presentation_zip , tf , mode = 'wb')
# unzip the contents of the archive
presentation_files <- unzip(tf , exdir = tempdir())
# load the institute for fiscal studies' 1981, 1985, and 1991 data.frame objects
x81 <-
read.dta(grep("ifs81" , presentation_files , value = TRUE))
x85 <-
read.dta(grep("ifs85" , presentation_files , value = TRUE))
x91 <-
read.dta(grep("ifs91" , presentation_files , value = TRUE))
# stack each of these three years of data into a single data.frame
x <- rbind(x81 , x85 , x91)
Replicate the author’s survey design statement from stata code..
. * account for clustering within HHs
. version 8: svyset [pweight = wgt], psu(hrn)
pweight is wgt
psu is hrn
construct an
.. into R code:
# initiate a linearized survey design object
y <- svydesign( ~ hrn , data = x , weights = ~ wgt)
# immediately run the `convey_prep` function on the survey design
z <- convey_prep(y)
Replicate the author’s subset statement and each of his svyatk results with stata..
. svyatk x if year == 1981
Warning: x has 20 values = 0. Not used in calculations
Complex survey estimates of Atkinson inequality indices
pweight: wgt Number of obs = 9752
Strata: <one> Number of strata = 1
PSU: hrn Number of PSUs = 7459
Population size = 54766261
---------------------------------------------------------------------------
Index | Estimate Std. Err. z P>|z| [95% Conf. Interval]
---------+-----------------------------------------------------------------
A(0.5) | .0543239 .00107583 50.49 0.000 .0522153 .0564324
A(1) | .1079964 .00245424 44.00 0.000 .1031862 .1128066
A(1.5) | .1701794 .0066943 25.42 0.000 .1570588 .1833
A(2) | .2755788 .02597608 10.61 0.000 .2246666 .326491
A(2.5) | .4992701 .06754311 7.39 0.000 .366888 .6316522
---------------------------------------------------------------------------
..using R code:
## atkinson SE
## eybhc0 0.054324 0.0011
## atkinson SE
## eybhc0 0.108 0.0025
## atkinson SE
## eybhc0 0.17018 0.0067
## atkinson SE
## eybhc0 0.27558 0.026
## atkinson SE
## eybhc0 0.49927 0.0675
Confirm this replication applies for subsetted objects as well, comparing stata code..
. svyatk x if year == 1981 & x >= 1
Complex survey estimates of Atkinson inequality indices
pweight: wgt Number of obs = 9748
Strata: <one> Number of strata = 1
PSU: hrn Number of PSUs = 7457
Population size = 54744234
---------------------------------------------------------------------------
Index | Estimate Std. Err. z P>|z| [95% Conf. Interval]
---------+-----------------------------------------------------------------
A(0.5) | .0540059 .00105011 51.43 0.000 .0519477 .0560641
A(1) | .1066082 .00223318 47.74 0.000 .1022313 .1109852
A(1.5) | .1638299 .00483069 33.91 0.000 .154362 .1732979
A(2) | .2443206 .01425258 17.14 0.000 .2163861 .2722552
A(2.5) | .394787 .04155221 9.50 0.000 .3133461 .4762278
---------------------------------------------------------------------------
..to R code:
## atkinson SE
## eybhc0 0.054006 0.0011
## atkinson SE
## eybhc0 0.10661 0.0022
## atkinson SE
## eybhc0 0.16383 0.0048
## atkinson SE
## eybhc0 0.24432 0.0143
## atkinson SE
## eybhc0 0.39479 0.0416
For additional usage examples of svyatk
, type ?convey::svyatk
in the R console.
This section displays example results using nationally-representative surveys from both the United States and Brazil. We present a variety of surveys, levels of analysis, and subpopulation breakouts to provide users with points of reference for the range of plausible values of the svyatk
function.
To understand the construction of each survey design object and respective variables of interest, please refer to section 1.4 for CPS-ASEC, section 1.5 for PNAD Contínua, and section 1.6 for SCF.
## atkinson SE
## htotval 0.38424 0.0029
## sex htotval se.htotval
## male male 0.3621620 0.004018133
## female female 0.4001271 0.003879890
## atkinson SE
## ftotval 0.33941 0.0033
## sex ftotval se.ftotval
## male male 0.3134257 0.004928748
## female female 0.3615489 0.004371817
## atkinson SE
## pearnval 0.25625 0.003
## sex pearnval se.pearnval
## male male 0.2619172 0.003659413
## female female 0.2373733 0.005095477
svyatk(
~ deflated_per_capita_income ,
subset(pnadc_design , deflated_per_capita_income > 0),
na.rm = TRUE
)
## atkinson SE
## deflated_per_capita_income 0.3773 0.0038
svyby(
~ deflated_per_capita_income ,
~ sex ,
subset(pnadc_design , deflated_per_capita_income > 0),
svyatk ,
na.rm = TRUE
)
## sex deflated_per_capita_income se.deflated_per_capita_income
## male male 0.3793418 0.004049461
## female female 0.3750622 0.003852270
## atkinson SE
## deflated_labor_income 0.34911 0.0041
svyby(
~ deflated_labor_income ,
~ sex ,
subset(pnadc_design , deflated_labor_income > 0) ,
svyatk ,
na.rm = TRUE
)
## sex deflated_labor_income se.deflated_labor_income
## male male 0.3498899 0.004738257
## female female 0.3375239 0.004399895
## Warning in subset.svyimputationList(scf_design, networth > 0): subset differed
## between imputations
## Multiple imputation results:
## with(subset(scf_design, networth > 0), svyatk(~networth))
## scf_MIcombine(with(subset(scf_design, networth > 0), svyatk(~networth)))
## results se
## networth 0.8534903 0.004069562
## Warning in subset.svyimputationList(scf_design, networth > 0): subset differed
## between imputations
## Multiple imputation results:
## with(subset(scf_design, networth > 0), svyby(~networth, ~hhsex,
## svyatk))
## scf_MIcombine(with(subset(scf_design, networth > 0), svyby(~networth,
## ~hhsex, svyatk)))
## results se
## male 0.8402561 0.005154381
## female 0.8257367 0.013566334
## Warning in subset.svyimputationList(scf_design, income > 0): subset differed
## between imputations
## Multiple imputation results:
## with(subset(scf_design, income > 0), svyatk(~income))
## scf_MIcombine(with(subset(scf_design, income > 0), svyatk(~income)))
## results se
## income 0.4943538 0.01340503
## Warning in subset.svyimputationList(scf_design, income > 0): subset differed
## between imputations
## Multiple imputation results:
## with(subset(scf_design, income > 0), svyby(~income, ~hhsex, svyatk))
## scf_MIcombine(with(subset(scf_design, income > 0), svyby(~income,
## ~hhsex, svyatk)))
## results se
## male 0.4814661 0.01510394
## female 0.3182340 0.01475070