# Estimation of bilateral migrant flows from bilateral migrant stocks using rates approaches

Source:`R/ffs_rates.R`

`ffs_rates.Rd`

Estimates migrant transitions flows between two sequential migrant stock tables using approached based on rates.

## Arguments

- stock_start
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*- stock_end
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.- M
Numeric value for the global sum of migration flows, used for

`dennett`

approach.- method
Method to estimate flows. Can take values

`dennett`

or`rogers-von-rabenau`

. See details section for more information. Uses`dennett`

as default.

## Value

Estimates migrant transitions flows based on migration rates.

When `method = "dennett"`

migration are derived from the matrix supplied to `stock_start`

. Dennett uses bilateral migrant stocks at beginning of period. Rates then multiplied by global migration flows supplied in `M`

.

When `method = "rogers-von-rabenau"`

a matrix of growth rates are derived from the changes in initial populations stock `stock_start`

to obtain `stock_end`

;
$$P^{t+1} = g P^{t}$$

and then multiplied by the corresponding populations at risk in `stock_start`

. Can result in negative flows.

## References

Dennett, A. (2015). Estimating an Annual Time Series of Global Migration Flows - An Alternative Methodology for Using Migrant Stock Data. *Global Dynamics: Approaches from Complexity Science*, 125–142. https://doi.org/10.1002/9781118937464.ch7

Rogers, A., & Von Rabenau, B. (1971). Estimation of interregional migration streams from place-of-birth-by-residence data. *Demography*, 8(2), 185–194.

## See also

`ffs_demo`

, `ffs_rates`

## Examples

```
s1 <- matrix(data = c(100, 10, 10, 0, 20, 55, 25, 10, 10, 40, 140, 65, 20, 25, 20, 200),
nrow = 4, ncol = 4, byrow = TRUE)
s2 <- matrix(data = c(75, 25, 5, 15, 20, 45, 30, 15, 30, 40, 150, 35, 10, 50, 5, 200),
nrow = 4, ncol = 4, byrow = TRUE)
r <- LETTERS[1:4]
dimnames(s1) <- dimnames(s2) <- list(pob = r, por = r)
s1; s2
#> por
#> pob A B C D
#> A 100 10 10 0
#> B 20 55 25 10
#> C 10 40 140 65
#> D 20 25 20 200
#> por
#> pob A B C D
#> A 75 25 5 15
#> B 20 45 30 15
#> C 30 40 150 35
#> D 10 50 5 200
# calculate total migration flows for dennett approach
n <- colSums(s2) - colSums(s1)
ffs_rates(stock_start = s1, M = sum(abs(n)), method = "dennett" )
#> dest
#> orig A B C D
#> A 0.000000 2.352941 2.352941 0.000000
#> B 4.705882 0.000000 5.882353 2.352941
#> C 2.352941 9.411765 0.000000 15.294118
#> D 4.705882 5.882353 4.705882 0.000000
ffs_rates(stock_start = s1, stock_end = s2, method = "rogers-von-rabenau" )
#> dest
#> orig A B C D
#> A 0.000000 26.584620 -10.22741 24.16653
#> B 3.474032 0.000000 11.71799 20.12425
#> C 34.097610 -0.125662 0.00000 -51.85130
#> D -12.047899 38.857311 -24.36993 0.00000
```