Heavy-tailed synthetic DGP for CausalStress (v1.3.0)
Source:R/dgp-synth-heavytail.R
dgp_synth_heavytail_v130.RdImplements 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).
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,X5true_att: numeric scalar (structural ATT for treated units)
true_qst: tibble with columns
tauandvalue(QST truth oncs_tau_oraclegrid)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.