Eco 572: Research methods in Demography
Stable Populations
In this unit we do some stable population calculations, including determination of the intrinsic growth rate, as illustrated
in Box 7.1, and computing he stable equivalent age distribution, as illustrated in Box 7.2 in the textbook.
I used Mata throughout, which I think leads to clearer code, but I need it only for the eigenanalysis in the third
section; otherwise all calculations can be done in plain Stata, as shown in the
alternative version.
Box 7.1. The Population of Egypt
We showed in the previous unit how to calculate
r
from the first eigenvalue of the Leslie Matrix. We now use the
Egyptian example in Box 7.1 to illustrate Coale's method. We start by entering person-years lived for ages 15-19 to 45-
49, the maternity function at those ages, and the midpoints of the age groups.
. mata:
------------------------------------------------- mata (type end to
exit) -------------------------------------------
:
L = (4.66740, 4.63097, 4.58518, 4.53206, 4.46912, 4.39135, 4.28969)
:
m = (0.00567, 0.06627, 0.11204, 0.07889, 0.05075, 0.01590, 0.00610)
:
a = (15,20,25,30,35,40,45) :+ 2.5
: end
---------------------------------------------------------------------------------------------------------------------
The Net Reproduction Ratio
The Net Reproduction Ratio NRR is easily computed as the sum of the products of the survival ratios and the
maternity function
. mata:
------------------------------------------------- mata (type end to
exit) -------------------------------------------
:
nrr = sum( L :* m )
:
nrr
1.527413734
: end
---------------------------------------------------------------------------------------------------------------------
The NRR is 1.527 daughters per woman, in agreement with the textbook.
Coale's Method for Estimating r
Next we solve Lotka's equation. Coale's method follows from a Taylor expansion of Lotka's integral (equation 7.10b in
the text) which I'll call f(r), and its first derivative f'(r)=-f(r)A(r) where A is the mean age of childbearing written as
a function of r. If r0 is a trial value and r the true value or solution, write f(r0) = f(r) + (r0-r)f'(r) and note that f(r)=1
and f'(r)=-A where A is the true mean age of childbearing in the stable population. The next trial value would then be r =
r0 + (f(r0)-1)/A. As the textbook notes, we don't know A until we know r, so we use an approximation, in this example
27. For a starting value we use r = log(NRR)/A.
We write a one-line function to compute a discrete approximation to Lotka's integral given a trial value of
r
. We then use
log(NRR)/27 as a trial value and compare the result to unity to determine a new trial value. The code below does
three iterations
. mata:
------------------------------------------------- mata (type end to
exit) -------------------------------------------
: scalar f(scalar r, vector a, vector L, vector m) {
>
return( sum(exp(-r * a) :* L :* m ) )
> }
http://data.princeton.edu/eco572/stablepop.html (1 of 7) [2/12/2008 11:07:34 AM]