Learn R Programming

migest (version 1.3)

ffs: Flows from Stocks Methodology

Description

Estimates migrant transitions flows between two sequential migrant stock tables.

Usage

ffs(P1, P2, d, b, m = NULL, net=FALSE, d.adj=FALSE, ...)

Arguments

P1
Matrix of migrant stock totals at time t. Rows in the matrix correspond to place of birth and columns to place of residence at time t
P2
Matrix of migrant stock totals at time t+1. Rows in the matrix correspond to place of birth and columns to place of residence at time t+1.
d
Number of deaths between time t and t+1 in each region.
b
Number of births between time t and t+1 in each region.
m
Array of auxiliary data. By default set to 1 for all origin-destination-migrant type combinations.
net
Calcualate adjusted stock tables to match the row totals of the stock table after demographic accounting. By default FALSE.
d.adj
Calculate deaths by place of residence table to match the row totals of the stock table after demographic accounting. By default FALSE.
...
Additional arguments passes to ipf3.qi.

Value

  • Returns a list object with:
  • muArray of indirect estimates of origin-destination matrices by place of birth.
  • itIteration count.
  • tolTolerance level at final iteration.
  • yArray of indirect estimates of origin-destination matrices by place of birth with additional rows and columns for births, deaths and moves to other regions.

Details

Estimates migrant transitions flows between two sequential migrant stock tables as shown in Abel (2013). The length of b and d must equal the number of rows in P1 and number of columns in P2. Setting net=TRUE uses an alternative demographic accounting method to adjusted stock tables to match the row totals of the stock table after demographic accounting. Setting adj.d=TRUE uses the calcualtion of the deaths by place of residence table to match the row totals of the stock table after demographic accounting. Both of these options maintain the net migration flow implied by the population, birth and death data. Only one of these arguments can be set to TRUE. Discussion of these methods is given in Abel (2013b).

References

Abel, G. J. (2013). Estimating Global Migration Flow Tables Using Place of Birth. Demographic Research 28, (18) 505-546 Abel, G. J. (2013b). Combining Bilateral Migrant Stock and Net Migration Flow Information to Estimate Global Flow Tables. Vienna Institute of Demography Working Paper Forthcoming.

See Also

ipf3.qi, fm

Examples

Run this code
## 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), 4, 4, 
        dimnames = list(pob = dn, por = dn), byrow = TRUE)
P2 <- matrix(c(950, 100, 60, 0, 80, 505, 75, 5, 90, 30, 800, 40, 40, 45, 0, 180), 4, 4, 
        dimnames = list(pob = dn, por = dn), byrow = TRUE)
# display with row and col totals
addmargins(P1)
addmargins(P2)

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

y <- ffs(P1, P2, d, b)
# display with row, col and table totals
round(addmargins(y$mu), 1)
# display with row and col totals
round(fm(y$mu), 1)

## alternative offset term
dis <- array(c(1, 2, 3, 4, 2, 1, 5, 6, 3, 4, 1, 7, 4, 6, 7, 1), c(4, 4, 4))
y <- ffs(P1, P2, d, b, dis)
# display with row, col and table totals
round(addmargins(y$mu), 1)
# display with row and col totals
round(fm(y$mu), 1)

## alternative P2 and changes in population from natural increase
P2 <- matrix(c(1060, 60, 10, 10, 45, 540, 40, 0, 70, 75, 770, 70, 30, 30, 20, 230), 4, 4, 
        dimnames = list(pob = dn, por = dn), byrow = TRUE)
# display with row and col totals
addmargins(P2)
b <- c(80, 20, 40, 60)
d <- c(70, 30, 50, 10)

y <- ffs(P1, P2, d, b)
# display with row, col and table totals
round(addmargins(y$mu), 1)
# display with row and col totals
round(fm(y$mu), 1)

Run the code above in your browser using DataLab