Skip to contents

Implements the synth_heavytail design from the DGP registry. This DGP shares the same covariates, baseline outcome, treatment effect, and propensity as synth_baseline, but replaces the Gaussian noise with a heavy-tailed mixture: epsilon ~ 0.8 * N(0, 0.5) + 0.2 * Cauchy(0, 1).

Usage

dgp_synth_heavytail_v130(
  n,
  seed = NULL,
  include_truth = TRUE,
  oracle_only = FALSE
)

Arguments

n

Integer, number of observations.

seed

Optional seed for reproducibility (passed to cs_set_rng()).

include_truth

Logical; if TRUE, include oracle truth tables where supported.

oracle_only

Logical; if TRUE, return only columns needed for oracle truth generation where supported.

Value

A list with:

  • df: tibble with columns y, w, y0, y1, p, structural_te, X1, X2, X3, X4, X5

  • true_att: numeric scalar (structural ATT for treated units)

  • true_qst: tibble with columns tau and value (QST truth on cs_tau_oracle grid)

  • meta: list with fields dgp_id = "synth_heavytail", type = "synthetic", structural_te = tau

Details

Goal: Penalize non-robust loss functions (e.g., L2/MSE).

Structure: Same \(\mu_0\), \(\tau\), and \(p\) as synth_baseline.

Noise mixture: \(\varepsilon \sim 0.8 \cdot \mathcal{N}(0, 0.5) + 0.2 \cdot \text{Cauchy}(0, 1)\).

Note: Variance is undefined; winsorization is forbidden inside the DGP generation.