## Global Bilateral International Migration Flows

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
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
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
, , 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)
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.