Home | GLMs | Multilevel | Survival | Demography | Stata | R

Population Momentum

Our final unit focuses on population momentum, the notion that in most of the world population would continue to grow even if fertility dropped suddenly to replacement level.

I used Mata for the calculations, but I could have done them just a easily using Stata.
An alternative version of the handout using only Stata is available here.

Momentum in Western Asia

We turn to Box 7.3 in the textbook, which uses data from Western Asia in 1995-2000 to illustrate the Preston-Guillot calculations. We start by entering the female population, the survival ratios, and the maternity function

. mata:
------------------------------------------------- mata (type end to exit) -------------------------------------------
: N = (12013,11027,9856,8614,7694,6893,6135,5318,4376,3510)'

: L = (4.834,4.803,4.789,4.773,4.748,4.716,4.678,4.631,4.570,4.483)'

: m = (0,0,0,0.043,0.112,0.112,.058,.029,.007,0)'

: nrr = sum ( L :* m)

: nrr
  1.70282

: end
---------------------------------------------------------------------------------------------------------------------

We see that the net reproduction rate is 1.703 daughters per woman. The population of Western Asia is growing fast. What would happen if fertility dropped instantly to replacement level?

One way to answer the question would be to adjust the maternity function and do the projection. Here we will consider the alternatives.

The Preston-Guillot Method

We first need to estimate the replacement-level maternity function, which we do by simply dividing the observed rates by the NRR. (Note that there are many other maternity functions that would work just as well, we follow tradition in assuming a proportionate decline.) We also need the mean age of the new maternity schedule.

. mata:
------------------------------------------------- mata (type end to exit) -------------------------------------------
: ms = m/nrr

: sum( L :* ms)
  1

: a = range(0,45,5) :+ 2.5

: as = sum( a :* ms :* L)

: as
  26.60042753

: end
---------------------------------------------------------------------------------------------------------------------

The mean age is 26.60, in agreement with the textbook. (Note that we computed just the numerator of the mean because the denominator is of course one, as we verified in the previous step.)

The only tricky step is calculation of the weight function, representing the expected number of births that will occur above each age divided by the sum of those births over all ages, which is, of course, mean age at birth in the stationary population. (The analogy is integrating a survival curve to obtain expectation of life.)

We can do that with a bit of looping. The code below is not efficient, because it keeps summing the tail of the age distribution, but is probably clearer than the alternatives.

. mata:
------------------------------------------------- mata (type end to exit) -------------------------------------------
: n = length(a) // number of age groups

: w = J(n,1,0)

: ba = ms :* L

: for (i=1; i < n; i++) {
>         w[i] = 5*(ba[i]/2 + sum(ba[(i+1)..n]))/as
> }

: w
                  1
     +---------------+
   1 |  .1879669037  |
   2 |  .1879669037  |
   3 |  .1879669037  |
   4 |  .1766391828  |
   5 |  .1359612405  |
   6 |  .0774586087  |
   7 |  .0333310594  |
   8 |  .0109435788  |
   9 |  .0017656186  |
  10 |            0  |
     +---------------+

: end
---------------------------------------------------------------------------------------------------------------------

(These values are 5 times those published in the textbook, the reason will be revealed at the end of this section.)

Now all we need to do is compute the ratio of the current to the stationary age distribution, multiply by the weights we just computed, and sum across ages (see Equation 7.21). In computing the age distributions we divide the numbers in each age group by the total number in all ages, not just 0-50, using the values given in Box 7.3, namely the population total for the N's and life expectancy for the L's. (If we had the data for all ages we could, of course, compute these ourselves.)

. mata:
------------------------------------------------- mata (type end to exit) -------------------------------------------
: ca = N/87176

: sa = L/70.3

: sum( w :* ca :/ sa)
  1.609443248

: end
---------------------------------------------------------------------------------------------------------------------

And we discover that the female population will grow another 61.0%, even if rates dropped immediately to replacement level. A similar calculation with the male population and life table and the same weights shows that the male population would grow another 50.4%. The weighted average of these numbers is 56%. Finally we copy results to Stata and plot the current and stationary age distributions

. set obs 10
obs was 0, now 10

. mata:
------------------------------------------------- mata (type end to exit) -------------------------------------------
: st_store(.,st_addvar("float","a"),a)

: st_store(.,st_addvar("float","ca"),ca)

: st_store(.,st_addvar("float","sa"),sa)

: end
---------------------------------------------------------------------------------------------------------------------

. line ca sa a, lpat(dash solid) xtitle(age) ytitle(prop in 5-year age group) ///
>         title(Current and Stationary Age Distributions) ///
>         subtitle(Western Asia 1995-2000) ///
>         legend(order(1 "Current" 2 "Stationary") col(1) ring(0) pos(1))

. graph export momentum.png, replace
(file momentum.png written in PNG format)

The reason for the substantial momentum should be clear from the nature of the age distributions.

Now for the missing multiplier. The textbook doesn't multiply by 5 in computing the weights, but divides the nLx's by 5, which produces the same end result. However, as explained on page 162, all three ingredients are distributions that sum to one. Mine do, whereas the weights in the text sum to 0.2, and does the implied stationary age distribution. These, of course, appear in the numerator and denominator of equation 7.21, so the factor of five cancels. To plot the age distributions, however, one needs to use L/e0, not (L/5)/e0.

Keyfitz's Approximation

The idea of population momentum originated with Keyfitz, and proved quite influential in policy circles. His formulation assumed that the population was stable at the outset and the reduction in rates was proportionally the same at all ages, but neither assumption is required in the previous development. Because the method is still popular, however, we apply it to Western Asia.

In the original 1971 paper, momentum is given by

      b e0   NRR-1
 M =  ---- ( ----- )
      r m     NRR
where b is the birth rate, r the rate of natural increase, m the mean age of childbearing in the stationary population, and NRR is the net reproduction ratio, all before the fall.

James Frauenthal pointed out that the formula was very nearly

    b e0
M = ----
    NRR^0.5
and it is this simpler formula that is often used. (The denominator is the square root of NRR.)

Keyfitz notes that the simpler formula can be justified using the fact that NRR is approximately exp(r m) and the rest follows from taking the leading term in a Taylor series. An intuitive explanation is that births after the fall will be 1/NRR times the births before, and will then rise and fall in waves, oscillating around the mean. Using a geometric mean gives 1/NRR^0.5.

For our data we can compute the birth rate and combine that with the already-computed NRR and mean age of childbearing:

. mata:
------------------------------------------------- mata (type end to exit) -------------------------------------------
: cbr = sum(N :* m)/87176

: cbr
  .0291918647

: cbr * 70.3 / sqrt(nrr)
  1.57265258

: end
---------------------------------------------------------------------------------------------------------------------

We obtain a momentum of 1.57, which is not far from the more exact 1.61 computed above. Not bad for a simple calculation.