A few months ago, *Demographic Research* published my paper on estimating global migration flow tables. In the paper I developed a method to estimate international migrant flows, for which there is limited comparable data, to matches changes in migrant stock data, which are more widely available. The result was bilateral tables of estimated international migrant transitions between 191 countries for four decades, which I believe are a first of kind. The estimates in an excel spreadsheet are available as a additional file on the journal website. The abstract and citation details are at the bottom of this post.

My migest R package contains the `ffs`

function for the flows-from-stock method used in the paper. To demonstrate, consider two hypothetical migrant stock tables I use in the paper, where rows represent place of birth and columns represent place of residence. The first stock table represents the distributions of migrant stocks at the start of the period. The second represents the distributions at the end of the period.

> # create P1 and P2 stock tables
> dn <- LETTERS[1:4]
> P1 <- matrix(c(1000, 100, 10, 0,
+ 55, 555, 50, 5,
+ 80, 40, 800, 40,
+ 20, 25, 20, 200),
+ nrow=4, ncol=4, byrow = TRUE,
+ dimnames = list(pob = dn, por = dn))
> P2 <- matrix(c(950, 100, 60, 0,
+ 80, 505, 75, 5,
+ 90, 30, 800, 40,
+ 40, 45, 0, 180),
+ nrow=4, ncol=4, byrow = TRUE,
+ dimnames = list(pob = dn, por = dn))
> # display with row and col totals
> addmargins(P1)
por
pob A B C D Sum
A 1000 100 10 0 1110
B 55 555 50 5 665
C 80 40 800 40 960
D 20 25 20 200 265
Sum 1155 720 880 245 3000
> addmargins(P2)
por
pob A B C D Sum
A 950 100 60 0 1110
B 80 505 75 5 665
C 90 30 800 40 960
D 40 45 0 180 265
Sum 1160 680 935 225 3000

When estimating flows from stock data, a good demographer should worry about births and deaths over the period as these can have substantial impacts on changes in populations over time. In the simplest example using the above hypothetical example above, I set births and deaths to zero (implied by the equal row totals, the sum of populations by their place of birth) in each stock table. In any case I need to create some vectors to pass this information to the `ffs`

function.

> # no births and deaths
> b <- rep(0, 4)
> d <- rep(0, 4)

We can then pass the stock tables, births and deaths to the `ffs`

function to estimate flows by birth place, contained the `mu`

element of the returned `list`

.

> # run flow from stock estimation
> library("migest")
> y <- ffs(P1=P1, P2=P2, d=d, b=b)
1 46
2 0
> # display with row, col and table totals
> addmargins(y$mu)
, , pob = A
dest
orig A B C D Sum
A 950 0 50 0 1000
B 0 100 0 0 100
C 0 0 10 0 10
D 0 0 0 0 0
Sum 950 100 60 0 1110
, , pob = B
dest
orig A B C D Sum
A 55 0 0 0 55
B 25 505 25 0 555
C 0 0 50 0 50
D 0 0 0 5 5
Sum 80 505 75 5 665
, , pob = C
dest
orig A B C D Sum
A 80 0 0 0 80
B 10 30 0 0 40
C 0 0 800 0 800
D 0 0 0 40 40
Sum 90 30 800 40 960
, , pob = D
dest
orig A B C D Sum
A 20 0 0 0 20
B 0 25 0 0 25
C 10 10 0 0 20
D 10 10 0 180 200
Sum 40 45 0 180 265
, , pob = Sum
dest
orig A B C D Sum
A 1105 0 50 0 1155
B 35 660 25 0 720
C 10 10 860 0 880
D 10 10 0 225 245
Sum 1160 680 935 225 3000

The `fm`

function returns the flow matrix aggregated over the place of birth dimension in the `mu`

array.

> # display aggregate flows
> f <- fm(y$mu)
> addmargins(f)
dest
orig A B C D Sum
A 0 0 50 0 50
B 35 0 25 0 60
C 10 10 0 0 20
D 10 10 0 0 20
Sum 55 20 75 0 150

….and there you have it, an estimated flow matrix that matches the changes in the stock tables whilst controlling for births and deaths. In the paper I run the code on real migrant stock data provided by the World Bank, to estimate global migrant flow tables.

The `ffs`

function has some different methods to control for deaths in the estimation procedure. The estimation is based on a three way iterative proportional fitting scheme to estimate parameters in a log-linear model, not to dissimilar to that used in a paper based on my Southampton M.Sc. dissertation.

Publication Details:

Abel, G. J. (2013). Estimating global migration flow tables using place of birth data. *Demographic Research*, 28, 505–546. doi:10.4054/DemRes.2013.28.18

International migration flow data often lack adequate measurements of volume, direction and completeness. These pitfalls limit empirical comparative studies of migration and cross national population projections to use net migration measures or inadequate data. This paper aims to address these issues at a global level, presenting estimates of bilateral flow tables between 191 countries. A methodology to estimate flow tables of migration transitions for the globe is illustrated in two parts. First, a methodology to derive flows from sequential stock tables is developed. Second, the methodology is applied to recently released World Bank migration stock tables between 1960 and 2000 (Özden et al. 2011) to estimate a set of four decadal global migration flow tables. The results of the applied methodology are discussed with reference to comparable estimates of global net migration flows of the United Nations and models for international migration flows. The proposed methodology adds to the limited existing literature on linking migration flows to stocks. The estimated flow tables represent a first-of-a-kind set of comparable global origin destination flow data.