ipf3 | R Documentation |
The ipf3
function finds the maximum likelihood estimates for fitted values in the log-linear model:
\log y_{ijk} = \log \alpha_{i} + \log \beta_{j} + \log \lambda_{k} + \log \gamma_{ik} + \log \kappa_{jk} + \log m_{ijk}
where m_{ijk}
is a set of prior estimates for y_{ijk}
and is no more complex than the matrices being fitted.
ipf3(
row_tot = NULL,
col_tot = NULL,
m = NULL,
tol = 1e-05,
maxit = 500,
verbose = TRUE
)
row_tot |
Vector of origin totals to constrain the sum of the imputed cell rows. |
col_tot |
Vector of destination totals to constrain the sum of the imputed cell columns. |
m |
Array of auxiliary data. By default set to 1 for all origin-destination-migrant typologies combinations. |
tol |
Numeric value for the tolerance level used in the parameter estimation. |
maxit |
Numeric value for the maximum number of iterations used in the parameter estimation. |
verbose |
Logical value to indicate the print the parameter estimates at each iteration. By default |
Iterative Proportional Fitting routine set up in a similar manner to Agresti (2002, p.343). The arguments row_tot
and col_tot
take the row-table and column-table specific known margins.
The user must ensure that the row and column totals in each table sum to the same value. Care must also be taken to allow the dimension of the auxiliary matrix (m
) to equal those provided in the row and column totals.
Returns a list
object with
mu |
Array of indirect estimates of origin-destination matrices by migrant characteristic |
it |
Iteration count |
tol |
Tolerance level at final iteration |
Guy J. Abel
Abel and Cohen (2019) Bilateral international migration flow estimates for 200 countries Scientific Data 6 (1), 1-13
Azose & Raftery (2019) Estimation of emigration, return migration, and transit migration between all pairs of countries Proceedings of the National Academy of Sciences 116 (1) 116-122
Abel, G. J. (2013). Estimating Global Migration Flow Tables Using Place of Birth. Demographic Research 28, (18) 505-546
Agresti, A. (2002). Categorical Data Analysis 2nd edition. Wiley.
ipf3_qi
, ipf2
## create row-table and column-table specific known margins.
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)
addmargins(P2)
# run ipf
y <- ipf3(row_tot = t(P1), col_tot = P2)
# display with row, col and table totals
round(addmargins(y$mu), 1)
# origin-destination flow table
round(sum_od(y$mu), 1)
## with 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 <- ipf3(row_tot = t(P1), col_tot = P2, m = dis)
# display with row, col and table totals
round(addmargins(y$mu), 1)
# origin-destination flow table
round(sum_od(y$mu), 1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.