dfl_decompose
Decompose group outcome gaps at a chosen statistic via DFL propensity-score reweighting, separating composition from structure effects. Provides diagnostics and certified parity evidence.
Instructions
DFL (1996) reweighting decomposition at a chosen distributional statistic. Validation: certified parity evidence. Assumptions: DiNardo-Fortin-Lemieux reweighting: ignorable group assignment given covariates; Propensity-score model is correctly specified for the reweighting kernel; Common support across groups (no extrapolation beyond observed covariate range). Pre-conditions: Binary group indicator with sufficient overlap on covariates; Outcome distribution to decompose is continuous (typically log-wage). Failure modes: Extreme propensity-score weights inflate variance -> Trim or stabilize weights, or restrict to the common-support region. Alternatives: sp.ffl_decompose, sp.oaxaca, sp.machado_mata. Typical minimum N: 500.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | Primary running variable, regressor, or feature input for this estimator. | |
| y | Yes | Outcome variable column name or outcome array. | |
| tau | No | Quantile level or target treatment-effect index. | |
| seed | No | Random seed for reproducible stochastic steps. | |
| stat | No | stat parameter (str). | mean |
| trim | No | trim parameter (float). | |
| alpha | No | Significance level for confidence intervals and tests. | |
| group | Yes | Group or cohort identifier. | |
| detail | No | Payload depth: 'minimal' (~150 tokens) for sub-step calls where only the point estimate is needed; 'standard' (~1K tokens) for diagnostics + coefficient table; 'agent' (~2K tokens, default) adds violations / next_steps / suggested_functions so the LLM can plan its next call without another round-trip. | agent |
| n_boot | No | Number of bootstrap replications. | |
| weights | No | Observation weights. | |
| as_handle | No | If true, cache the fitted result on the server and return result_id + result_uri alongside the JSON payload so a subsequent tools/call can chain without re-running. | |
| data_path | Yes | Absolute path or URL to a data file. Supported: .csv / .tsv / .txt (delimited), .parquet / .pq, .feather / .arrow, .xlsx / .xls, .dta (Stata), .json / .jsonl. Schemes: file://, s3://, gs://, https://. | |
| inference | No | inference parameter (str). | analytical |
| reference | No | - 0: reweight Group B to look like A's X (default). The counterfactual is F_{Y<1|0>} -- A's X distribution with B's outcome structure. - 1: reweight Group A to look like B's X. The counterfactual is F_{Y<0|1>} -- B's X distribution with A's outcome structure. .. warning:: ``reference`` has different economic semantics across method families. In DFL, ``reference=0`` yields cf = *A's X, B's beta* (reweighting approach). In ``machado_mata`` / ``melly`` / ``cfm``, ``reference=0`` yields cf = *A's beta, B's X* (coefficient-substitution approach). These are **opposite** counterfactual constructions. Within each method labels are internally consistent (DFL structure = A - cf; MM composition = A - cf). When comparing estimates across methods, read the per-method docstrings carefully. | |
| result_id | No | Optional handle to a previously-fitted result (returned by an earlier call when as_handle=true). Tools that operate on a fitted object accept this in place of re-supplying data_path + columns. | |
| data_columns | No | Optional column projection. Parquet/Feather/Stata loaders honour this for fast partial reads. | |
| data_sample_n | No | Optional uniform random subsample size (seed=0, deterministic) — useful on huge panels. | |
| quantile_grid | No | If provided, also compute quantile-process decomposition on this grid. | |
| stat_convention | No | Weighted variance / quantile definition for the reweighted counterfactual (see ``_common.statistic_value``). ``'hmisc'`` reproduces ``ddecompose::dfl_decompose``, which uses ``Hmisc::wtd.var`` and ``Hmisc::wtd.quantile``; the reweighting itself is identical under both. ``stat='gini'`` is the exact plug-in Gini either way; ``ddecompose`` integrates the Lorenz curve numerically and differs from it in the fourth significant digit. | statspai |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||