| Title: | Small Area Estimation for Key Health and Demographic Indicators from Household Surveys | 
| Version: | 1.2.3 | 
| Description: | Enables small area estimation (SAE) of health and demographic indicators in low- and middle-income countries (LMICs). It powers an R 'shiny' application for generating subnational estimates and prevalence maps of 150+ binary indicators from Demographic and Health Surveys (DHS). It builds on the SAE analysis workflow from the 'surveyPrev' package. For documentation, visit https://sae4health.stat.uw.edu/. Methodological details can be found at Wu et al. (2025) <doi:10.48550/arXiv.2505.01467>. | 
| License: | AGPL-3 | 
| URL: | https://sae4health.stat.uw.edu/, https://github.com/wu-thomas/sae4health | 
| BugReports: | https://github.com/wu-thomas/sae4health/issues | 
| Depends: | R (≥ 4.3) | 
| Imports: | config, dplyr, DT, ggplot2, golem (≥ 0.4.1), grid, gridExtra, htmltools, htmlwidgets, leaflet, R6, sf, sp, shiny (≥ 1.7.4), shinyBS, shinydashboard, shinyFeedback, shinyjs, shinyWidgets, SUMMER, surveyPrev, survey, geodata, bookdown, markdown, haven, ggridges, ggthemes, RColorBrewer, viridisLite, scales, patchwork, leaflegend, leafsync, methods, graphics, plotly, readr, sn | 
| Suggests: | INLA, testthat (≥ 3.0.0) | 
| Additional_repositories: | https://inla.r-inla-download.org/R/testing/ | 
| Encoding: | UTF-8 | 
| LazyData: | true | 
| RoxygenNote: | 7.3.2 | 
| NeedsCompilation: | no | 
| Config/build/clean-inst-doc: | FALSE | 
| Config/testthat/edition: | 3 | 
| Language: | en-US | 
| Packaged: | 2025-05-07 01:05:45 UTC; wu-th | 
| Author: | Yunhan Wu [cre, aut], Qianyu Dong [aut], Zehang R Li [aut], Jon Wakefield [aut] | 
| Maintainer: | Yunhan Wu <wu-thomas@outlook.com> | 
| Repository: | CRAN | 
| Date/Publication: | 2025-05-07 12:30:02 UTC | 
R Shiny App for Small Area Estimation of Health and Demographic Indicators
Description
The sae4health package powers an R Shiny app designed for small area estimation (SAE) of health and demographic indicators in low- and middle-income countries (LMICs). It enables subnational estimation and prevalence mapping for more than 150 binary indicators derived from Demographic and Health Surveys (DHS), providing an intuitive interface for public health analysts, policymakers, and researchers.
Details
Built on the surveyPrev package, sae4health ensures methodological rigor in SAE analysis. It offers guided model selection, automated model fitting, and interactive visualization, making advanced statistical methods accessible to non-experts.
For comprehensive documentation on the sae4health project and web-based app access, visit: https://sae4health.stat.uw.edu/
The latest development version of the package is maintained at: https://github.com/wu-thomas/sae4health
Citation: Wu, Y., Dong, Q., Xu, J., Li, Z. R., & Wakefield, J. (2025). sae4health: An R Shiny Application for Small Area Estimation in Low- and Middle-Income Countries. doi:10.48550/arXiv.2505.01467.
Author(s)
- Yunhan Wu [Maintainer] (wu-thomas@outlook.com) 
- Qianyu Dong (qdong14@ucsc.edu) 
- Zehang R Li (lizehang@gmail.com) 
- Jon Wakefield (jonno@uw.edu) 
References
Wu, Y., Dong, Q., Xu, J., Li, Z. R., & Wakefield, J. (2025). sae4health: An R Shiny Application for Small Area Estimation in Low- and Middle-Income Countries. arXiv preprint.doi:10.48550/arXiv.2505.01467
See Also
- Getting Started:
- Demo and Instruction Video:
- Statistical Methods:
- Visualization Gallery:
- Recent Updates and News:
DHS Country Metadata
Description
A dataset containing metadata for countries included in DHS surveys, including standardized country codes across multiple international organizations.
Usage
DHS.country.meta
Format
A data frame with 60 rows and 12 columns:
- UNAIDS_CountryCode
- Country code used by UNAIDS. 
- SubregionName
- Name of the subregion (e.g., West Africa, South Asia). 
- WHO_CountryCode
- Country code used by WHO. 
- FIPS_CountryCode
- Country code used by FIPS. 
- UNICEF_CountryCode
- Country code used by UNICEF. 
- RegionName
- Name of the global region (e.g., Africa, Asia). 
- ISO2_CountryCode
- Two-letter ISO country code. 
- ISO3_CountryCode
- Three-letter ISO country code. 
- RegionOrder
- Numeric ordering of the region for visualization. 
- DHS_CountryCode
- Unique country code assigned by DHS. 
- CountryName
- Full name of the country. 
- UNSTAT_CountryCode
- Country code used by UN Statistics Division. 
DHS Dataset Metadata
Description
A dataset containing metadata on recodes for DHS surveys supported by the app.
Usage
DHS.dataset.meta
Format
A data frame with 5,636 rows and 13 columns:
- FileFormat
- Format of the dataset file (e.g., Stata, SPSS, CSV). 
- FileSize
- Size of the dataset file in megabytes. 
- DatasetType
- Type of dataset/recode (e.g., Household, Individual, Children, Biomarker). 
- SurveyNum
- Survey number assigned by DHS. 
- SurveyId
- Unique ID of the survey associated with the dataset. 
- FileType
- Type of file (e.g., Household Recode, Birth Recode, Men's Recode). 
- FileDateLastModified
- Date when the dataset file was last modified. 
- SurveyType
- Type of DHS survey (e.g., DHS, AIS, MIS). 
- SurveyYearLabel
- Label describing the survey year. 
- SurveyYear
- Year in which the DHS survey was conducted. 
- DHS_CountryCode
- Unique country code assigned by DHS. 
- FileName
- Name of the dataset file. 
- CountryName
- Full name of the country associated with the dataset. 
DHS Survey Metadata
Description
A dataset containing metadata for DHS surveys supported by the app.
Usage
DHS.survey.meta
Format
A data frame with 153 rows and 30 columns:
- ReleaseDate
- Date the survey data was released. 
- SurveyId
- Unique ID assigned to each DHS survey. 
- MaxAgeWomen
- Maximum age of surveyed women. 
- FieldworkStart
- Start date of survey fieldwork. 
- MinAgeMen
- Minimum age of surveyed men. 
- ImplementingOrg
- Organization implementing the survey. 
- SurveyCharacteristicIds
- IDs of survey characteristics. 
- SurveyType
- Type of survey (e.g., DHS, AIS, MIS). 
- SurveyYearLabel
- Label describing the survey year. 
- IndicatorData
- Boolean. Whether indicator data is available. 
- MinAgeWomen
- Minimum age of surveyed women. 
- SurveyYear
- Year in which the DHS survey was conducted. 
- FieldworkEnd
- End date of survey fieldwork. 
- DHS_CountryCode
- DHS country code. 
- NumberOfSamplePoints
- Number of sample points in the survey. 
- CountryName
- Name of the country where the survey was conducted. 
- NumberOfWomen
- Number of women surveyed. 
- SubregionName
- Name of the subregion. 
- MaxAgeMen
- Maximum age of surveyed men. 
- SurveyNum
- Survey number assigned by DHS. 
- SurveyStatus
- Status of the survey (e.g., Completed, Ongoing). 
- NumberOfFacilities
- Number of health facilities surveyed. 
- UniverseOfMen
- Population coverage for male respondents. 
- RegionName
- Region name for survey coverage. 
- UniverseOfWomen
- Population coverage for female respondents. 
- Footnotes
- Additional survey notes. 
- PublicationDate
- Date when the survey results were published. 
- NumberofHouseholds
- Number of households surveyed. 
- NumberOfMen
- Number of men surveyed. 
- GPS_avail
- Whether GPS coordinates are available for cluster locations. 
DHS API Estimates
Description
A dataset containing estimated health indicators from the DHS API, including country-level estimates and subgroup breakdowns.
Usage
DHS_api_est
Format
A data frame with 28,110 rows and 7 columns:
- Country
- Name of the country where the survey was conducted. 
- Country Code
- Three-letter ISO country code. 
- Survey Year
- Year in which the DHS survey was conducted. 
- DHS Standard ID
- Unique identifier for the DHS survey. 
- Definition
- Definition of the health indicator being estimated. 
- Estimate
- Estimated value of the indicator. 
- By Variable Label
- Label describing any subgrouping (e.g., urban/rural, age group). 
DHS Indicator Dictionary
Description
A dataset for DHS health indicators, including their DHS official definitions, measurement types, and denominators.
Usage
DHS_ind_dictionary
Format
A data frame with 4,433 rows and 5 columns:
- DHS Standard Indicator ID
- Unique identifier for each DHS indicator. 
- Label
- Short name or label for the indicator. 
- Full Definition
- Detailed description of the indicator. 
- Denominator
- Explanation of the denominator used in indicator calculation. 
- Measurement Type
- Type of measurement (e.g., percentage, count, rate). 
WHO Administrative Level 2 Linkage
Description
A dataset linking administrative level 2 regions to their corresponding WHO region and country codes.
Usage
adm2.link.all
Format
A data frame with 1,095 rows and 8 columns:
- WHO_REGION
- WHO-designated region for the country. 
- ISO.3.DIGIT.COUNTRY.CODE
- Three-letter ISO country code. 
- ADM0_VIZ_NAME
- Administrative level 0 (country) name for visualization. 
- ADM1_VIZ_NAME
- Administrative level 1 (first subnational division) name. 
- ADM2_VIZ_NAME
- Administrative level 2 (second subnational division) name. 
- GUID.LEVEL.0
- Global unique identifier for level 0 (country). 
- GUID.LEVEL.1..
- Global unique identifier for level 1 (first subnational division). 
- GLOBAL.UNIQUE.IDENTIFIER..
- Global unique identifier for level 2 (second subnational division). 
Convert Administrative Level String to Numeric Code
Description
This function converts administrative level names (e.g., "National", "Admin-1") into corresponding numerical values.
Usage
admin_to_num(admin_level)
Arguments
| admin_level | A character string representing the administrative level. It can be "National" or "Admin-X" (where X is a positive integer). | 
Value
An integer representing the numerical level: - "National" is converted to 0. - "Admin-X" is converted to X as an integer. - Returns NULL if the input is invalid.
Examples
admin_to_num("National")   # Returns 0
admin_to_num("Admin-1")    # Returns 1
admin_to_num("Admin-2")    # Returns 2
admin_to_num("Invalid")    # Returns NULL
Matching Results Between DHS and GitHub Indicators, Imported from surveyPrev
Description
The dataset 'match_all_result' contains the results of matching indicators from DHS (Demographic and Health Surveys) with those extracted from GitHub. The dataset includes similarity scores, recoding names, indicator definitions, and positional information within the matched text.
Usage
match_all_result
Format
A data frame with 132 rows and 20 variables:
- indicator_ID_DHS
- Character. Unique ID of the indicator in DHS. 
- DHS_label
- Character. Label assigned to the indicator in DHS. 
- DHS_definition
- Character. Description or definition of the DHS indicator. 
- Combined
- Character. Combined text representation for similarity matching. 
- Similarity
- Numeric. Similarity score between DHS and GitHub indicators. 
- indicator_ID_Github
- Character. Unique ID of the indicator from GitHub. 
- recode_name
- Character. Initial recoding name for the indicator. 
- updated_recode_name
- Character. Revised recoding name after updates. 
- indicator_ID_Github_raw
- Character. Raw version of the GitHub indicator ID. 
- indicator_def_github
- Character. Processed indicator definition from GitHub. 
- indicator_def_github_raw
- Character. Unprocessed raw definition from GitHub. 
- indicator_chapter
- Character. The chapter or category of the indicator. 
- indicator_R_bundle
- Character. Associated R bundle or package for processing. 
- start_position
- Integer. Start position of the matched pattern in text. 
- end_position
- Integer. End position of the matched pattern in text. 
- matched_pattern
- Character. The exact text pattern matched between sources. 
- batch_recode_group
- Character. Grouping variable for batch recoding. 
- indicator
- Character. Final matched indicator name. 
- X
- Unknown. This variable needs clarification or may be redundant. 
- ID_first_two_letters
- Character. First two letters of the indicator ID, possibly used for grouping or sorting. 
WHO National-Level Shapefile
Description
A spatial dataset containing national-level WHO boundaries for eight countries, with administrative codes and metadata.
Usage
natl.WHO.shp
Format
A spatial data frame with 8 rows and 35 columns:
- WHO_REGION
- WHO-designated region for the country. 
- ISO_3_CODE
- Three-letter ISO country code. 
- ADM0_NAME
- Administrative level 0 (country) name. 
- ADM0_CODE
- Administrative level 0 country code. 
...
Convert Numeric Code to Administrative Level String
Description
This function converts a numerical administrative level into its corresponding string format.
Usage
num_to_admin(num)
Arguments
| num | A single integer representing the administrative level. The value 0 corresponds to "National", while positive integers correspond to "Admin-X". | 
Value
A character string representing the administrative level: - 0 is converted to "National". - Positive integers are converted to "Admin-X". - Returns NULL if the input is invalid.
Examples
num_to_admin(0)    # Returns "National"
num_to_admin(1)    # Returns "Admin-1"
num_to_admin(2)    # Returns "Admin-2"
Reference Table for Original 22 Indicators
Description
A dataset containing the original 22 health and demographic indicators supported in the app.
Usage
ref_tab_22
Format
A data frame with 22 rows and 13 columns:
- ID
- Unique identifier for the indicator. 
- Description
- Short label for the indicator. 
- Full_definition
- Detailed definition of the indicator. 
- Topic
- General category or theme of the indicator. 
- Chap_abbrev
- Abbreviation of the chapter where the indicator appears. 
- IR
- Logical. Whether the indicator is available in the Individual Recode dataset. 
- PR
- Logical. Whether the indicator is available in the Household Members dataset. 
- KR
- Logical. Whether the indicator is available in the Children's Recode dataset. 
- BR
- Logical. Whether the indicator is available in the Birth Recode dataset. 
- HR
- Logical. Whether the indicator is available in the Household Recode dataset. 
- MR
- Logical. Whether the indicator is available in the Men's Recode dataset. 
- AR
- Logical. Whether the indicator is available in the AIDS Indicator Survey dataset. 
- CR
- Logical. Whether the indicator is available in the Couple's Recode dataset. 
Combined Indicators Reference Table
Description
A dataset containing all 153 indicators supported in the app, combining the original 22 indicators with the newly added ones.
Usage
ref_tab_all
Format
A data frame with 153 rows and 15 columns:
- ID
- Unique identifier for the indicator. 
- Description
- Short label for the indicator. 
- Full_definition
- Detailed definition of the indicator. 
- Topic
- General category or theme of the indicator. 
- Chap_abbrev
- Abbreviation of the chapter where the indicator appears. 
- IR
- Logical. Whether the indicator is available in the Individual Recode dataset. 
- PR
- Logical. Whether the indicator is available in the Household Members dataset. 
- KR
- Logical. Whether the indicator is available in the Children's Recode dataset. 
- BR
- Logical. Whether the indicator is available in the Birth Recode dataset. 
- HR
- Logical. Whether the indicator is available in the Household Recode dataset. 
- MR
- Logical. Whether the indicator is available in the Men's Recode dataset. 
- AR
- Logical. Whether the indicator is available in the AIDS Indicator Survey dataset. 
- CR
- Logical. Whether the indicator is available in the Couple's Recode dataset. 
- Chapter
- Chapter reference from the DHS reports. 
- Title
- Title of the section where the indicator appears. 
Newly Added Indicators Reference Table
Description
A dataset containing newly added health and demographic indicators in the app after its initial release.
Usage
ref_tab_new
Format
A data frame with 134 rows and 13 columns:
- ID
- Unique identifier for the indicator. 
- Description
- Short label for the indicator. 
- Full_definition
- Detailed definition of the indicator. 
- Topic
- General category or theme of the indicator. 
- Chap_abbrev
- Abbreviation of the chapter where the indicator appears. 
- IR
- Logical. Whether the indicator is available in the Individual Recode dataset. 
- PR
- Logical. Whether the indicator is available in the Household Members dataset. 
- KR
- Logical. Whether the indicator is available in the Children's Recode dataset. 
- BR
- Logical. Whether the indicator is available in the Birth Recode dataset. 
- HR
- Logical. Whether the indicator is available in the Household Recode dataset. 
- MR
- Logical. Whether the indicator is available in the Men's Recode dataset. 
- AR
- Logical. Whether the indicator is available in the AIDS Indicator Survey dataset. 
- CR
- Logical. Whether the indicator is available in the Couple's Recode dataset. 
Run the Shiny Application
Description
Run the Shiny Application
Usage
run_app(
  onStart = NULL,
  options = list(),
  enableBookmarking = NULL,
  uiPattern = "/",
  ...
)
Arguments
| onStart | A function that will be called before the app is actually run.
This is only needed for  | 
| options | Named options that should be passed to the  | 
| enableBookmarking | Can be one of  | 
| uiPattern | A regular expression that will be applied to each  | 
| ... | arguments to pass to golem_opts. See '?golem::get_golem_options' for more details. |