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.