- 1 Introduction
- 2 Poverty Indices
- 2.1 At Risk of Poverty Threshold (svyarpt)
- 2.2 At Risk of Poverty Ratio (svyarpr)
- 2.3 Relative Median Income Ratio (svyrmir)
- 2.4 Relative Median Poverty Gap (svyrmpg)
- 2.5 Median Income Below the At Risk of Poverty Threshold (svypoormed)
- 2.6 Foster-Greer-Thorbecke class (svyfgt, svyfgtdec)
- 2.7 Watts poverty measure (svywatts, svywattsdec)
- 2.8 Clark-Hemming-Ulph class of poverty measures (svychu)

- 3 Inequality Measurement
- 3.1 The Gender Pay Gap (svygpg)
- 3.2 Quintile Share Ratio (svyqsr)
- 3.3 Lorenz Curve (svylorenz)
- 3.4 Gini index (svygini)
- 3.5 Entropy-based Measures
- 3.6 Generalized Entropy and Decomposition (svygei, svygeidec)
- 3.7 J-Divergence and Decomposition (svyjdiv, svyjdivdec)
- 3.8 Atkinson index (svyatk)
- 3.9 Which inequality measure should be used?

Foster, Greer, and Thorbecke (1984)Foster, James, Joel Greer, and Erik Thorbecke. 1984. “A Class of Decomposable Poverty Measures.” *Econometrica* 52 (3): 761–66. http://www.jstor.org/stable/1913475. proposed a family of indicators to measure poverty. This class of \(FGT\) measures, can be defined as

\[ p=\frac{1}{N}\sum_{k\in U}h(y_{k},\theta ), \]

where

\[ h(y_{k},\theta )=\left[ \frac{(\theta -y_{k})}{\theta }\right] ^{\gamma }\delta \left\{ y_{k}\leq \theta \right\} , \]

where: \(\theta\) is the poverty threshold; \(\delta\) the indicator function that assigns value \(1\) if the condition \(\{y_{k}\leq \theta \}\) is satisfied and \(0\) otherwise, and \(\gamma\) is a non-negative constant.

If \(\gamma =0\), the FGT(0) equals the poverty headcount ratio, which accounts for the spread of poverty. If \(\gamma =1\), FGT(1) is the mean of the normalized income shortfall of the poor. By doing so, the measure takes into account both the spread and the intensity of poverty. When \(\gamma =2\), the relative weight of larger shortfalls increases even more, which yields a measure that accounts for poverty severity, i.e., the inequality among the poor. This way, a transfer from a poor person to an even poorer person would reduce the FGT(2).

Although Foster, Greer, and Thorbecke (1984)Foster, James, Joel Greer, and Erik Thorbecke. 1984. “A Class of Decomposable Poverty Measures.” *Econometrica* 52 (3): 761–66. http://www.jstor.org/stable/1913475. already presented a decomposition for the FGT(2) index, Foster, Greer, and Thorbecke (1984)Foster, James, Joel Greer, and Erik Thorbecke. 1984. “A Class of Decomposable Poverty Measures.” *Econometrica* 52 (3): 761–66. http://www.jstor.org/stable/1913475. provided a general formula that decomposes the FGT(\(\gamma\)) for any \(\gamma \geqslant 2\). Put simply, any such FGT(\(\gamma\)) index can be seen as function of the headcount ratio, the average normalized income gap among the poor and a generalized entropy index of the normalized income gaps among poor. In mathematical terms,

\[ FGT_\gamma = FGT_0 \cdot I^\gamma \cdot \big[ 1 + \big( \gamma^2 -\gamma \big) GEI_\gamma^* \big] , \text{ } \gamma \geq 2 \]

where \(I\) is the average normalized income gap among the poor and \(GEI_\gamma^*\) is a generalized entropy index of such income gaps among the poor.

This result is particularly useful, as one can attribute cross-sectional differences of a FGT index to differences in the spread, depth and inequality of poverty.

The FGT poverty class and its decomposition is implemented in the library convey by the function `svyfgt`

and `svyfgtdec`

, respectively.
The argument `thresh_type`

of this function defines the type of poverty threshold adopted.
There are three possible choices:

`abs`

– fixed and given by the argument thresh_value`relq`

– a proportion of a quantile fixed by the argument`proportion`

and the quantile is defined by the argument`order`

.`relm`

– a proportion of the mean fixed the argument`proportion`

The quantile and the mean involved in the definition of the threshold are estimated for the whole population. When \(\gamma=0\) and \(\theta= .6*MED\) the measure is equal to the indicator `arpr`

computed by the function `svyarpr`

. The linearization of the FGT(0) is presented in Berger and Skinner (2003)Berger, Yves G., and Chris J. Skinner. 2003. “Variance Estimation for a Low Income Proportion.” *Journal of the Royal Statistical Society: Series C (Applied Statistics)* 52 (4): 457–68. https://doi.org/10.1111/1467-9876.00417..

Next, we give some examples of the function `svyfgt`

to estimate the values of the FGT poverty index.

Consider first the poverty threshold fixed (\(\gamma=0\)) in the value \(10000\). The headcount ratio (FGT0) is

`svyfgt(~eqincome, des_eusilc, g=0, abs_thresh=10000)`

```
fgt0 SE
eqincome 0.11444 0.0027
```

The poverty gap ratio (FGT(1)) (\(\gamma=1\)) index for the poverty threshold fixed at the same value is

`svyfgt(~eqincome, des_eusilc, g=1, abs_thresh=10000)`

```
fgt1 SE
eqincome 0.032085 0.0011
```

To estimate the FGT(0) with the poverty threshold fixed at \(0.6* MED\) we fix the argument `type_thresh="relq"`

and use the default values for `percent`

and `order`

:

`svyfgt(~eqincome, des_eusilc, g=0, type_thresh= "relq")`

```
fgt0 SE
eqincome 0.14444 0.0028
```

that matches the estimate obtained by

`svyarpr(~eqincome, design=des_eusilc, .5, .6)`

```
arpr SE
eqincome 0.14444 0.0028
```

To estimate the poverty gap ratio with the poverty threshold equal to \(0.6*MEAN\), we use:

`svyfgt(~eqincome, des_eusilc, g=1, type_thresh= "relm")`

```
fgt1 SE
eqincome 0.051187 0.0011
```

**A replication example**

In July 2006, Jenkins (2008)Jenkins, 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.

In order to match the presentation’s results using the `svyfgt`

function from the convey library, the poverty threshold was considered absolute despite being directly estimated from the survey sample. This effectively treats the variance of the estimated poverty threshold as zero; `svyfgt`

does not account for the uncertainty of the poverty threshold when the level has been stated as absolute with the `abs_thresh=`

parameter. In general, we would instead recommend using either `relq`

or `relm`

in the `type_thresh=`

parameter in order to account for the added uncertainty of the poverty threshold calculation. This example serves only to show that `svyfgt`

behaves properly as compared to other software.

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
<- tempfile()
tf
# store the location of the presentation file
<- "http://repec.org/nasug2006/nasug2006_jenkins.zip"
presentation_zip
# download jenkins' presentation to the temporary file
download.file( presentation_zip , tf , mode = 'wb' )
# unzip the contents of the archive
<- unzip( tf , exdir = tempdir() )
presentation_files
# load the institute for fiscal studies' 1981, 1985, and 1991 data.frame objects
<- read.dta( grep( "ifs81" , presentation_files , value = TRUE ) )
x81 <- read.dta( grep( "ifs85" , presentation_files , value = TRUE ) )
x85 <- read.dta( grep( "ifs91" , presentation_files , value = TRUE ) )
x91
# NOTE: we recommend using ?convey::svyarpt rather than this unweighted calculation #
# calculate 60% of the unweighted median income in 1981
<- quantile( x81$eybhc0 , 0.5 ) * .6
unwtd_arpt81
# calculate 60% of the unweighted median income in 1985
<- quantile( x85$eybhc0 , 0.5 ) * .6
unwtd_arpt85
# calculate 60% of the unweighted median income in 1991
<- quantile( x91$eybhc0 , 0.5 ) * .6
unwtd_arpt91
# stack each of these three years of data into a single data.frame
<- rbind( x81 , x85 , x91 ) x
```

Replicate the author’s survey design statement from stata code..

```
. ge poor = (year==1981)*(x < $z_81) + (year==1985)*(x < $z_85) + (year==1991)*(x < $z_91)
. * account for clustering within HHs
. svyset hrn [pweight = wgt]
```

.. into R code:

```
# initiate a linearized survey design object
<- svydesign( ~ hrn , data = x , weights = ~ wgt )
y
# immediately run the `convey_prep` function on the survey design
<- convey_prep( y ) z
```

Replicate the author’s headcount ratio results with stata..

```
. svy: mean poor if year == 1981
(running mean on estimation sample)
Survey: Mean estimation
Number of strata = 1 Number of obs = 9772
Number of PSUs = 7476 Population size = 5.5e+07
Design df = 7475
--------------------------------------------------------------
| Linearized
| Mean Std. Err. [95% Conf. Interval]
-------------+------------------------------------------------
poor | .1410125 .0044859 .132219 .149806
--------------------------------------------------------------
. svy: mean poor if year == 1985
(running mean on estimation sample)
Survey: Mean estimation
Number of strata = 1 Number of obs = 8991
Number of PSUs = 6972 Population size = 5.5e+07
Design df = 6971
--------------------------------------------------------------
| Linearized
| Mean Std. Err. [95% Conf. Interval]
-------------+------------------------------------------------
poor | .137645 .0046531 .1285235 .1467665
--------------------------------------------------------------
. svy: mean poor if year == 1991
(running mean on estimation sample)
Survey: Mean estimation
Number of strata = 1 Number of obs = 6468
Number of PSUs = 5254 Population size = 5.6e+07
Design df = 5253
--------------------------------------------------------------
| Linearized
| Mean Std. Err. [95% Conf. Interval]
-------------+------------------------------------------------
poor | .2021312 .0062077 .1899615 .2143009
--------------------------------------------------------------
```

..using R code:

```
<-
headcount_81 svyfgt(
~ eybhc0 ,
subset( z , year == 1981 ) ,
g = 0 ,
abs_thresh = unwtd_arpt81
)
headcount_81
```

```
## fgt0 SE
## eybhc0 0.14101 0.0045
```

`confint( headcount_81 , df = degf( subset( z , year == 1981 ) ) )`

```
## 2.5 % 97.5 %
## eybhc0 0.1322193 0.1498057
```

```
<-
headcount_85 svyfgt(
~ eybhc0 ,
subset( z , year == 1985 ) ,
g = 0 ,
abs_thresh = unwtd_arpt85
)
headcount_85
```

```
## fgt0 SE
## eybhc0 0.13764 0.0047
```

`confint( headcount_85 , df = degf( subset( z , year == 1985 ) ) )`

```
## 2.5 % 97.5 %
## eybhc0 0.1285239 0.1467661
```

```
<-
headcount_91 svyfgt(
~ eybhc0 ,
subset( z , year == 1991 ) ,
g = 0 ,
abs_thresh = unwtd_arpt91
)
headcount_91
```

```
## fgt0 SE
## eybhc0 0.20213 0.0062
```

`confint( headcount_91 , df = degf( subset( z , year == 1991 ) ) )`

```
## 2.5 % 97.5 %
## eybhc0 0.1899624 0.2143
```

Confirm this replication applies for the normalized poverty gap as well, comparing stata code..

```
. ge ngap = poor*($z_81- x)/$z_81 if year == 1981
. svy: mean ngap if year == 1981
(running mean on estimation sample)
Survey: Mean estimation
Number of strata = 1 Number of obs = 9772
Number of PSUs = 7476 Population size = 5.5e+07
Design df = 7475
--------------------------------------------------------------
| Linearized
| Mean Std. Err. [95% Conf. Interval]
-------------+------------------------------------------------
ngap | .0271577 .0013502 .0245109 .0298044
--------------------------------------------------------------
```

..to R code:

```
<-
norm_pov_81 svyfgt(
~ eybhc0 ,
subset( z , year == 1981 ) ,
g = 1 ,
abs_thresh = unwtd_arpt81
)
norm_pov_81
```

```
## fgt1 SE
## eybhc0 0.027158 0.0014
```

`confint( norm_pov_81 , df = degf( subset( z , year == 1981 ) ) )`

```
## 2.5 % 97.5 %
## eybhc0 0.02451106 0.02980428
```

For additional usage examples of `svyfgt`

, type `?convey::svyfgt`

in the R console.