Categories of Synthetic Data Generation Frameworks
Guide
Table of Contents
- Overview
- Introduction
- Categories of Synthetic Data Generation Frameworks
- Key Features and Comparison
- Challenges of Synthetic Data Frameworks
- Comparison of Major Synthetic Data Frameworks
- Conclusion
- Resources
Overview
This post provides an overview of widely used synthetic data generation frameworks, highlighting their core generative models, supported data types, and application domains. It is designed to help readers understand the landscape of available tools for privacy-preserving data sharing, healthcare research, and general synthetic data generation.
Introduction
The increasing availability of data has significantly accelerated advances in machine learning, artificial intelligence, and data-driven decision making, particularly in domains such as healthcare, finance, and public policy. However, sharing real-world datasets often raises serious privacy, security, and regulatory concerns, especially when the data contain sensitive information about individuals. In the healthcare domain, for example, electronic health records (EHRs), clinical registries, and patient surveys may contain highly sensitive attributes such as diagnoses, treatments, demographic information, and geographic location. Even when direct identifiers such as names or social security numbers are removed, individuals may still be re-identified through combinations of quasi-identifiers or through linkage with external datasets.
Synthetic data generation has emerged as a promising solution to enable privacy-preserving data sharing while maintaining the analytical value of the original data. Instead of releasing real records, synthetic data generators learn the statistical structure of the original dataset and generate artificial records that mimic its distributions and relationships. When properly generated, synthetic datasets can preserve important statistical properties and machine learning utility while significantly reducing the risk of re-identification.
In recent years, a variety of synthetic data generation frameworks have been developed to support different types of datasets, modeling approaches, and privacy requirements. These frameworks integrate a range of generative techniques including statistical models (e.g., copula models), machine learning methods, deep learning architectures such as GANs and variational autoencoders, and simulation-based models. In addition to generating synthetic datasets, many frameworks also provide tools for evaluating data utility, fairness, and privacy risks, making them valuable tools for both research and practical data-sharing workflows.
The following sections present several widely used synthetic data generation frameworks, including SDG, SDV, Synthpop, DataSynthesizer, Synthea, and PySDG, highlighting their architectures, supported models, and typical workflows. These frameworks illustrate the diversity of approaches currently used for synthetic data generation and demonstrate how synthetic data can support trustworthy and privacy-preserving AI applications.
1. SDG (Synthetic Data Generator)
Link: https://synthetic-data-generator.readthedocs.io/en/stable/
SDG is a modular synthetic data generation framework designed for generating tabular and relational synthetic datasets. It supports multiple synthesis models and allows users to configure the generation pipeline.
Architecture
SDG includes three major components:
- Data Connector: Handles reading datasets from different sources such as CSV files, databases, and data warehouses.
- Synthesizer: Responsible for training generative models and generating synthetic samples.
- Model Layer: Defines the synthetic data generation algorithm used by the synthesizer.
Supported Generative Models
SDG supports several models including:
- CTGAN
- Gaussian copula models
- relational synthesis models
- LLM-based generation models
Example Implementation
1
2
3
4
5
6
7
8
9
10
11
12
13
from sdgx.models.ml.single_table.ctgan import CTGANSynthesizerModel
from sdgx.data_connectors.csv_connector import CsvConnector
from sdgx.synthesizer import Synthesizer
connector = CsvConnector(path="data.csv")
synthesizer = Synthesizer(
model=CTGANSynthesizerModel(),
data_connector=connector
)
synthesizer.fit()
synthetic_data = synthesizer.sample(1000)
SDG is particularly useful for generating synthetic datasets with complex relationships between multiple tables.
2. PySDG (Python Synthetic Data Generator)
Link: https://cheo-ehil.github.io/pysdg-releases/latest/index.html
PySDG is a synthetic data generation framework developed by the Electronic Health Information Laboratory (EHIL) at the Children’s Hospital of Eastern Ontario (CHEO). It was designed specifically for health data research and privacy evaluation.
Key Features
- Unified interface for multiple generative models
- Generation of synthetic tabular datasets
- Eevaluation of utility, fairness, and privacy risks
- Integration with machine learning workflows
Supported Models
PySDG integrates multiple synthetic data generation approaches including:
- Statistical models (copula-based models)
- Machine learning models
- Deep learning models
Architecture
The framework typically consists of the following components:
- Data Interface: Handles loading and preprocessing datasets.
- Generative Model: Learns the distribution of the dataset and generates synthetic samples.
- Evaluation Module: Measures statistical similarity, machine learning utility, and privacy risks.
Typical Workflow
1
2
3
4
5
from pysdg import SDG
sdg = SDG(data)
sdg.fit(model="gaussian_copula")
synthetic_data = sdg.sample(10000)
PySDG is widely used in health data privacy research because it allows researchers to experiment with different synthetic generation methods and evaluate their privacy implications.
3. SDV (Synthetic Data Vault)
Link: https://docs.sdv.dev/
SDV is one of the most widely used open-source synthetic data generation libraries. It is designed for generating synthetic data from single-table, relational, and time-series datasets.
Supported Models
SDV supports several models including:
- GaussianCopula
- CTGAN
- TVAE
- CopulaGAN
SDV Workflow
Step 1: Metadata Detection The framework automatically detects metadata such as column types, categorical values, and numerical ranges.
Step 2: Model Training The generative model learns the joint distribution of the dataset.
Step 3: Synthetic Data Generation After training, the model generates synthetic records by sampling from the learned distribution.
Step 4: Evaluation SDV provides tools for evaluating synthetic datasets using metrics such as distribution similarity, correlation similarity, and machine learning performance.
Example Code
1
2
3
4
5
6
7
8
9
from sdv.single_table import GaussianCopulaSynthesizer
from sdv.metadata import SingleTableMetadata
metadata = SingleTableMetadata()
metadata.detect_from_dataframe(data)
model = GaussianCopulaSynthesizer(metadata)
model.fit(data)
synthetic_data = model.sample(1000)
4. Synthpop
Link: https://www.synthpop.org.uk
Synthpop is a widely used statistical synthetic data generator developed primarily for statistical disclosure control. It is implemented in R and often used by government statistical agencies.
Methods Used
Synthpop generates synthetic data sequentially using models such as:
- CART models
- regression models
- parametric statistical models Each variable is synthesized conditional on previously generated variables.
5. DataSynthesizer
Link: https://github.com/DataResponsibly/DataSynthesizer
DataSynthesizer is a Python library for generating synthetic datasets with built-in privacy mechanisms.
Key Features
- Bayesian network modeling
- Differential privacy support
- Flexible attribute modeling
The framework supports three modes:
- Independent Mode: Assumes attributes are independent.
- Correlated Mode: Uses Bayesian networks to model dependencies.
- Differentially Private Mode: Adds noise to protect sensitive information.
6. Synthea
Link: https://synthea.mitre.org
Synthea is a synthetic health data generator designed specifically for electronic health records (EHR). Unlike other frameworks, Synthea does not learn from real datasets. Instead, it simulates patient life histories using clinical models.
Generated data includes:
- patient demographics
- diagnoses
- medications
- hospital visits
- laboratory results
Synthea is widely used for testing healthcare systems and training machine learning models.
Challenges of Synthetic Data Frameworks
Despite their benefits, synthetic data generation frameworks face several challenges.
- Privacy Leakage: Synthetic datasets may still leak information about real individuals.
- Distribution Drift: Synthetic data may not perfectly replicate the statistical structure of the real dataset.
- High-Dimensional Data: Modeling dependencies between hundreds of variables remains difficult.
- Evaluation Complexity: Measuring the utility and privacy of synthetic datasets remains an active research area.
Comparison of Major Synthetic Data Frameworks
| Framework | Main Models | Domain |
|---|---|---|
| SDG | CTGAN, copula models | general tabular datasets |
| PySDG | multiple statistical & ML | healthcare research |
| SDV | GAN, VAE, copula | general synthetic data |
| Synthpop | statistical models | statistical disclosure ctrl |
| DataSynthesizer | Bayesian networks | privacy-preserving datasets |
| Synthea | simulation models | healthcare records |
Conclusion
In conclusion, synthetic data frameworks offer a range of solutions for generating privacy-preserving datasets across different domains. By understanding the strengths and limitations of each framework, practitioners can select the most appropriate tool for their specific needs. Continued innovation in this field is essential for advancing data privacy, utility, and research capabilities.
Resources
- Goncalves, A., et. al. “Generation and evaluation of synthetic patient data.” BMC Medical Research Methodology, 20(1), 108 (2020).
- Synthpop: Generating Synthetic Versions of Sensitive Microdata in R
- SDV: Synthetic Data Vault (Python library)
- CTGAN: Conditional Tabular GAN for Synthesizing Realistic Data (GitHub)