SynthesizerPlus: Synthetic Data Generation with Copulas, Evaluation and Multi-Format I/O

Generates synthetic versions of numeric, categorical, mixed-type and time-series data. Marginal distributions are modelled with interpolated empirical quantile functions and dependence with Gaussian or Student-t copulas (Sklar, 1959). Discrete and categorical variables enter the copula through the distributional transform (Ruschendorf, 2009, <doi:10.1016/j.jspi.2009.05.030>), and their latent correlations are estimated by maximum likelihood as polychoric (Olsson, 1979, <doi:10.1007/BF02296207>) and polyserial (Olsson, Drasgow and Dorans, 1982, <doi:10.1007/BF02294164>) correlations. Missing values are modelled by missingness indicators inside the copula, so that missingness may depend on other variables. Supports stratified models, a closeness parameter with calibration to a target distance or disclosure-risk level, chunked generation of very large data sets, copula vector-autoregressive and bootstrap time-series synthesis, augmentation of small training sets for machine learning, and random generation from multivariate distributions and elliptical and Archimedean copulas. Fidelity, utility and disclosure risk are assessed with marginal distances, association matrices, propensity score mean-squared error (Snoke et al., 2018, <doi:10.1111/rssa.12358>), confidence-interval overlap, correct attribution probability and distance to closest record, with 'ggplot2' visualisations. Data can be read from and written to CSV, TSV, RDS, RData, Parquet, Feather, HDF5, JSON, NDJSON, Excel, SPSS, Stata, SAS and fst files. The empirical-quantile and copula approach builds on ideas of the 'synthesizer' package by Mark van der Loo.

Version: 0.2.9
Depends: R (≥ 4.1.0)
Imports: ggplot2 (≥ 3.4.0), stats, tools, utils
Suggests: arrow, data.table, fst, haven, hdf5r, jsonlite, knitr, MASS, nanoparquet, openxlsx, readxl, rmarkdown, rpart, testthat (≥ 3.0.0), writexl
Published: 2026-10-16
DOI: 10.32614/CRAN.package.SynthesizerPlus (may not be active yet)
Author: Bogdan Oancea [aut, cre, cph]
Maintainer: Bogdan Oancea <bogdan.oancea at gmail.com>
BugReports: https://github.com/bogdanoancea/SynthesizerPlus/issues
License: EUPL (≥ 1.2)
URL: https://github.com/bogdanoancea/SynthesizerPlus
NeedsCompilation: no
Language: en-GB
Citation: SynthesizerPlus citation info
Materials: README, NEWS
CRAN checks: SynthesizerPlus results

Documentation:

Reference manual: SynthesizerPlus.html , SynthesizerPlus.pdf
Vignettes: Augmenting small training sets for machine learning (source, R code)
Controlling how close synthetic data are to the real data (source, R code)
Evaluating and visualising synthetic data (source, R code)
Reading and writing data: CSV, Parquet, HDF5 and more (source, R code)
Getting started with SynthesizerPlus (source, R code)
Generating data from multivariate distributions (source, R code)
Releasing confidential microdata as synthetic data (source, R code)
Regularising high-variance models with synthetic data (source, R code)
Synthetic time series (source, R code)

Downloads:

Package source: SynthesizerPlus_0.2.9.tar.gz
Windows binaries: r-devel: not available, r-release: not available, r-oldrel: not available
macOS binaries: r-release (arm64): not available, r-oldrel (arm64): not available, r-release (x86_64): not available, r-oldrel (x86_64): not available

Linking:

Please use the canonical form https://CRAN.R-project.org/package=SynthesizerPlus to link to this page.