Skip to content

synthetic

optimizer.synthetic

Synthetic data generation and vine copula models.

DependenceMethodType

Bases: str, Enum

Dependence method for vine copula tree construction.

Maps to :class:skfolio.distribution.DependenceMethod.

SelectionCriterionType

Bases: str, Enum

Information criterion for copula family selection.

Maps to :class:skfolio.distribution.SelectionCriterion.

SyntheticDataConfig dataclass

Immutable configuration for :class:skfolio.prior.SyntheticData.

Generates synthetic return scenarios from a fitted distribution model (typically a vine copula). Supports conditional stress testing via the sample_args factory parameter.

Non-serialisable objects (distribution_estimator, sample_args) are passed as keyword arguments to the factory function.

Parameters

n_samples : int Number of synthetic scenarios to generate. vine_copula_config : VineCopulaConfig or None Configuration for building a VineCopula distribution estimator. Ignored when distribution_estimator is passed to the factory directly.

for_scenario_generation(n_samples=10000) classmethod

Large-sample scenario generation with default vine copula.

for_stress_test(n_samples=10000) classmethod

Stress-test configuration (conditioning dict passed to factory).

Uses BIC for copula selection (penalises complexity more than AIC) and deeper vine trees (max_depth=6) to capture tail dependence.

VineCopulaConfig dataclass

Immutable configuration for :class:skfolio.distribution.VineCopula.

Vine copulas decompose a multivariate distribution into marginal distributions and bivariate copulas organised in a tree structure.

Non-serialisable objects (marginal_candidates, copula_candidates, central_assets) are passed as keyword arguments to the factory function.

Parameters

fit_marginals : bool Whether to fit univariate marginals. max_depth : int Maximum depth of the vine tree. log_transform : bool Whether to apply log transformation. dependence_method : DependenceMethodType Method for measuring pairwise dependence when building the vine structure. selection_criterion : SelectionCriterionType Information criterion for selecting copula families. independence_level : float Significance level for independence testing. n_jobs : int or None Number of parallel jobs. random_state : int or None Random state for reproducibility.

build_synthetic_data(config=None, *, distribution_estimator=None, sample_args=None, **kwargs)

Build a skfolio :class:SyntheticData prior from config.

Parameters

config : SyntheticDataConfig or None Synthetic data configuration. Defaults to SyntheticDataConfig(). distribution_estimator : VineCopula or None Pre-built distribution estimator. When None, one is built from config.vine_copula_config (or skfolio default). sample_args : dict or None Arguments passed to the distribution's sample method. Use {"conditioning": {"AAPL": -0.10}} for conditional stress testing. **kwargs Additional keyword arguments forwarded to the :class:SyntheticData constructor.

Returns

SyntheticData A fitted-ready skfolio prior estimator generating synthetic return scenarios.

build_vine_copula(config=None, **kwargs)

Build a skfolio :class:VineCopula from config.

Parameters

config : VineCopulaConfig or None Vine copula configuration. Defaults to VineCopulaConfig(). **kwargs Additional keyword arguments forwarded to the :class:VineCopula constructor (for non-serialisable parameters such as marginal_candidates, copula_candidates, central_assets).

Returns

VineCopula A fitted-ready skfolio vine copula estimator.