compute_mpi {mpindex} | R Documentation |
Compute Multidimensional Poverty Index (MPI)
Description
This function uses the Alkire-Foster (AF) counting method developed by Sabina Alkire and James Foster. It requires a deprivation profile created using the (define_deprivation
) fuction containing all indicators defined in the specification files.
Usage
compute_mpi(
.data,
.deprivation_profile,
...,
.mpi_specs = getOption("mpi_specs"),
.include_deprivation_matrix = TRUE,
.generate_output = FALSE,
.formatted_output = TRUE,
.mpi_output_filename = NULL,
.include_table_summary = TRUE,
.include_specs = FALSE
)
Arguments
.data |
A tidy data frame where each observation is the unit of analysis defined in |
.deprivation_profile |
list of deprivation profile created using |
... |
Grouping columns (supports tidyselect), e.g. area (country, urbanity, region, province), sex, ethnic group, etc. |
.mpi_specs |
MPI specifications defined in |
.include_deprivation_matrix |
Whether to include deprivation matrix in the output. |
.generate_output |
Whether to generate an output (Excel file) as side effect. |
.formatted_output |
NOT YET IMPLEMENTED. Whether formatting is to be applied to the output. |
.mpi_output_filename |
Output filename. |
.include_table_summary |
NOT YET IMPLEMENTED. Whether to include summary information in the generated output. |
.include_specs |
NOT YET IMPLEMENTED. Whether to include MPI specification in the generated output. |
Value
Returns list of objects: index
(the MPI), contribution
(contribution by dimension), headcount_ratio
(censored and uncensored), and deprivation_matrix
(censored and uncensored). If poverty_cutoffs
defined in define_mpi_specs
contain more than one (1) value, index
and contribution
object will output each cutoff in a separate table.
References
Alkire-Foster Method
How to Apply the Alkire-Foster Method
See Also
define_mpi_specs, define_deprivation, save_mpi
Examples
# ----------------------------------
# Load MPI specs from the built-in specs file
specs_file <- system.file("extdata", "global-mpi-specs.csv", package = "mpindex")
mpi_specs <- define_mpi_specs(specs_file, .uid = 'uuid')
# ----------------------------------
# Create an empty list to store deprivation profile for each indicator
deprivation_profile <- list()
deprivation_profile$nutrition <- df_household_roster |>
define_deprivation(
.indicator = nutrition,
.cutoff = undernourished == 1 & age < 70,
.collapse = TRUE
)
deprivation_profile$child_mortality <- df_household |>
define_deprivation(
.indicator = child_mortality,
.cutoff = with_child_died == 1
)
deprivation_profile$year_schooling <- df_household_roster |>
define_deprivation(
.indicator = year_schooling,
.cutoff = completed_6yrs_schooling == 2,
.collapse = TRUE
)
deprivation_profile$school_attendance <- df_household_roster |>
define_deprivation(
.indicator = school_attendance,
.cutoff = attending_school == 2 & age %in% c(5:24),
.collapse = TRUE
)
deprivation_profile$cooking_fuel <- df_household |>
define_deprivation(
.indicator = cooking_fuel,
.cutoff = cooking_fuel %in% c(4:6, 9)
)
deprivation_profile$sanitation <- df_household |>
define_deprivation(
.indicator = sanitation,
.cutoff = toilet > 1
)
deprivation_profile$drinking_water <- df_household |>
define_deprivation(
.indicator = drinking_water,
.cutoff = drinking_water == 2
)
deprivation_profile$electricity <- df_household |>
define_deprivation(
.indicator = electricity,
.cutoff = electricity == 2
)
deprivation_profile$housing <- df_household |>
define_deprivation(
.indicator = housing,
.cutoff = roof %in% c(5, 7, 9) | walls %in% c(5, 8, 9, 99) == 2 | floor %in% c(5, 6, 9)
)
deprivation_profile$assets <- df_household |>
dplyr::mutate_at(dplyr::vars(dplyr::starts_with('asset_')), ~ dplyr::if_else(. > 0, 1L, 0L)) |>
dplyr::mutate(
asset_phone = dplyr::if_else(
(asset_telephone + asset_mobile_phone) > 0,
1L,
0L
)
) |>
dplyr::mutate(
with_hh_conveniences = (
asset_tv + asset_phone + asset_computer +
asset_animal_cart + asset_bicycle +
asset_motorcycle + asset_refrigerator) > 1,
with_mobility_assets = (asset_car + asset_truck) > 0
) |>
define_deprivation(
.indicator = assets,
.cutoff = !(with_hh_conveniences & with_mobility_assets)
)
# ----------------------------------
# Compute the MPI
mpi_result <- df_household |>
compute_mpi(deprivation_profile)
# ----------------------------------
# You may also save your output into an Excel file
## Not run:
save_mpi(mpi_result, .filename = 'MPI Sample Output')
## End(Not run)