Multiple Imputation and Synthetic Data Generation with NPBayesImputeCat

Abstract:

In many contexts, missing data and disclosure control are ubiquitous and challenging issues. In particular, at statistical agencies, the respondent-level data they collect from surveys and censuses can suffer from high rates of missingness. Furthermore, agencies are obliged to protect respondents’ privacy when publishing the collected data for public use. The NPBayesImputeCat R package, introduced in this paper, provides routines to i) create multiple imputations for missing data and ii) create synthetic data for statistical disclosure control, for multivariate categorical data, with or without structural zeros. We describe the Dirichlet process mixture of products of the multinomial distributions model used in the package and illustrate various uses of the package using data samples from the American Community Survey (ACS). We also compare results of the missing data imputation to the mice R package and those of the synthetic data generation to the synthpop R package.

Cite PDF Tweet

Published

Sept. 19, 2021

Received

May 1, 2020

DOI

10.32614/RJ-2021-080

Volume

Pages

13/2

90 - 110

CRAN packages used

NPBayesImputeCat, mice, synthpop, bayesplot, tidyverse

CRAN Task Views implied by cited packages

MissingData, OfficialStatistics, Multivariate, SocialSciences

Footnotes

    Reuse

    Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".

    Citation

    For attribution, please cite this work as

    Hu, et al., "The R Journal: Multiple Imputation and Synthetic Data Generation with NPBayesImputeCat", The R Journal, 2021

    BibTeX citation

    @article{RJ-2021-080,
      author = {Hu, Jingchen and Akande, Olanrewaju and Wang, Quanli},
      title = {The R Journal: Multiple Imputation and Synthetic Data Generation with NPBayesImputeCat},
      journal = {The R Journal},
      year = {2021},
      note = {https://doi.org/10.32614/RJ-2021-080},
      doi = {10.32614/RJ-2021-080},
      volume = {13},
      issue = {2},
      issn = {2073-4859},
      pages = {90-110}
    }