help for povdecoStephen P. Jenkins (revised February 2021)

Poverty indices, with optional decomposition by subgroup

povdeco varname [weights]
[if exp] [in range]
[, pline(#)
varpline(zvar)
bygroup(groupvar)
summarize]

fweights and aweights are allowed; see help weights.

Description

povdeco estimates three poverty indices from the Foster, Greer and
Thorbecke (1984) class, FGT(a). FGT(0) is the headcount ratio (the proportion poor);
FGT(1) is the average normalised poverty gap; FGT(2) is the
average squared normalised poverty gap. The larger a is, the greater
the degree of `poverty aversion' (sensitivity to large poverty gaps).
Optionally provided are statistics such as mean income amongst the poor
and also decompositions of these indices by population
subgroup. Poverty decompositions by subgroup are useful for providing
poverty `profiles' at a point in time, and for analyzing secular trends
in poverty using shift-share analysis. Unit record (`micro' level) data
are required.

Typically one's data are in one of two forms. Either (1) the money incomes
for each unit i, x_i, are equivalised using an equivalence scale factor, m_i,
so that y_i = x_i / m_i, and the poverty line is a single (common) value,
in the same units as equivalised income, z. Or (2) incomes are not
equivalised, but there are different poverty lines depending on (for
example) household type. Suppose the poverty line for unit i is z_i.
Observe that if z_i = z * m_i, FGT poverty index calculations based on
give exactly the same answers as calculations based on , i=1,...,n.
For the common poverty line case, use pline(#) to specify
the poverty line. For the heterogeneous poverty line case, use
varpline(zvar) to specify the poverty lines.

For the characterization of the FGT(a) poverty index, see Foster et al. (1984).
Seidl (1988) and Zheng (1997) survey the literature on aggregate poverty indices.

groupvar must take non-negative integer values only. To create such a
variable from an existing variable, use the egen function group.
By default, observations with missing values on groupvar are excluded
from calculations when the bygroup option is specified. If you wish to
include them, create a new variable with the egen function group
and use its missing option. The egen function group is
also useful for multi-way decompositions. E.g. for a decomposition by sex
and region, create a new groupvar defining sex-region combinations by
specifying sex and region in group(varlist).

Bootstrapped standard errors for unweighted estimates of the indices can be
derived using bootstrap. Bootstrapped standard errors for weighted
estimates can be derived using svy bootstrap and Philippe Van Kerm's
rhsbsample on SSC. Standard errors derived using linearization methods
can be calculated straightforwardly by first creating for each
FGT(a) index, a variable equal to I_i * [ ( z_i - y_i ) / z_i) ] ^ a, where I_i
= 1 if observation i is poor and 0 otherwise. Then estimate the mean of
each of these new variables using svy mean having first appropriately
svyset your data. See Jenkins (2006) for examples. It is the user's
responsibility to account for uncertainty in the calculation of the poverty line.

Technical details

Consider a population of persons (or households ...), i = 1,...,n,
with income y_i, and weight w_i. Let f_i = w_i / N, where N = SUM w_i.
(In what follows all sums are over all values of whatever is
subscripted.) When the data are unweighted, w_i = 1 and N = n.
The poverty line is z_i for each i, and the poverty gap for person i is
max(0, z_i-y_i). For the common poverty line case (1) above, z_i = z, all i.

Suppose there is an exhaustive partition of the population into
mutually-exclusive subgroups k = 1,...,K.

The FGT class of poverty indices is given by

FGT(a) = SUM f_i * I_i * [ ( z_i - y_i ) / z_i) ] ^ a,
a >= 0,

where I_i = 1 if y_i < z_i and I_i = 0 otherwise.

Each FGT(a) index can be additively decomposed as

FGT(a) = SUM v_k * FGT_k(a)

where v_k = N_k / N is the weighted number of persons in subgroup k
divided by the weighted total number of persons (subgroup population share),
and FGT_k(a), poverty for subgroup k, is calculated as if each subgroup
were a separate population.

Also displayed when subgroup decompositions requested, for each k, are:

subgroup poverty 'share', S_k = v_k * FGT_k(a) / FGT(a), and

subgroup poverty 'risk', R_k = FGT_k(a) / FGT(a) = S_k / v_k.

Options

bygroup(groupvar) requests inequality decompositions by population
subgroup, with subgroup membership summarized by groupvar.

summarize requests presentation of the mean of varname, the mean among the poor,
and the mean poverty gap among the poor.

pline(#) is used to specify the poverty line # in the common poverty line case.

varpline(zvar) is used to specify the variable zvar containing the values of
poverty line for each observation in the heterogeneous poverty line case.

Saved results

r(fgt0), r(fgt1), r(fgt2)	FGT(a), for a = 0, 1, 2

r(mean) mean
r(meanpoor) mean among the poor
r(meangappoor) mean poverty gap among the poor
r(N), r(sumw) number of observations, sum of weights

If the bygroup option is specified, also saved are:

r(fgt0_k) FGT(a), for a = 0, 1, 2, and
r(fgt1_k) each subgroup k, where the values of k
r(fgt2_k) correspond to the values of groupvar
in the estimation sample. See r(levels) below.

r(mean_k) mean among subgroup k
r(meanpoor_k) mean among the poor in subgroup k
r(meangappoor_k) mean poverty gap among the poor in subgroup k
r(n_k), r(sumw_k) number of subgroup observations, subgroup sum of weights
r(v_k) subgroup population share, v_k
r(share0_k) FGT(0) poverty share among subgroup k
r(share1_k) FGT(1) poverty share among subgroup k
r(share2_k) FGT(2) poverty share among subgroup k
r(risk0_k) FGT(0) poverty risk among subgroup k
r(risk1_k) FGT(1) poverty risk among subgroup k
r(risk2_k) FGT(2) poverty risk among subgroup k

r(levels) macro containing the set of values of groupvar
(the number of unique values = K)

For the convenience of users of earlier versions of these programs,
a selected set of estimates is also saved in global macros, as follows.

S_FGT0, S_FGT1, S_FGT2	FGT(a), for a = 0, 1, 2

Examples

. povdeco x [aw = wgtvar], pline(100)

. povdeco x [aw = wgtvar], pline(100) by(famtype)

. povdeco x, varpline(z)

. povdeco x if sex==1, pl(100) summarize

. // bootstrapped standard errors for FGT(2) in Stata version 8

. preserve

. keep if x > 0 & x < .

. version 8: bootstrap "povdeco x, pline(100)" fgt2 = r(fgt2), reps(100)

. restore

. // bootstrapped standard errors for FGT(2) in Stata version 9

. preserve

. keep if x > 0 & x < .

. bootstrap fgt2 = r(fgt2), reps(100): povdeco x, pline(100)

. restore

. // multi-way decomposition

. egen sexXregion = group(sex region)

. povdeco x, pline(100) by(sexXregion)

Author

Stephen P. Jenkins <s.jenkins@lse.ac.uk>

London School of Economics

Acknowledgements

For comments and suggestions, I am grateful to Philippe Van Kerm and Nick Cox.

References

Foster, J.E., Greer, J., and Thorbecke, E. 1984.
A class of decomposable poverty indices.
Econometrica 52: 761-766.

Jenkins, S.P. 2006. Estimation and interpretation of measures of inequality,
poverty, and social welfare using Stata. Presentation at North American
Stata Users' Group Meetings 2006, Boston MA.
http://econpapers.repec.org/paper/bocasug06/16.htm.

Seidl, C. 1988. Poverty measurement: a survey. In: D. Bös, M. Rose and C. Seidl (eds.),
Welfare and Efficiency in Public Economics. Heidelberg: Springer-Verlag.

Zheng, B. 1997. Aggregate poverty indices.
Journal of Economic Surveys 11: 123-162.

Also see

poverty if installed;
ineqdeco if installed.