Estimator Adapters

Estimator-output adapters for reporting audits.

class updatesupport.adapters.EstimatorAdapterResult(rows, effect_column, source, effect_kind, source_rows, estimator_name=None, metadata=<factory>)[source]

Bases: object

Rows with an attached effect column plus lightweight adapter metadata.

Parameters:
rows: tuple[dict[str, Any], ...]
effect_column: str
source: str
effect_kind: str
source_rows: int
estimator_name: str | None = None
metadata: Mapping[str, Any]
audit_effects(**kwargs)[source]

Run updatesupport.audit_effects() on the adapted rows.

Parameters:

kwargs (Any)

causal_reporting_stability(**kwargs)[source]

Run updatesupport.causal_reporting_stability() on the rows.

Parameters:

kwargs (Any)

class updatesupport.adapters.ConformalAdapterResult(rows, source, source_rows, prediction_column=None, lower_column=None, upper_column=None, interval_width_column=None, covered_column=None, miscovered_column=None, crosses_threshold_column=None, prediction_set_size_column=None, ambiguous_set_column=None, metadata=<factory>)[source]

Bases: object

Rows with attached conformal prediction targets and metadata.

Parameters:
  • rows (tuple[dict[str, Any], ...])

  • source (str)

  • source_rows (int)

  • prediction_column (str | None)

  • lower_column (str | None)

  • upper_column (str | None)

  • interval_width_column (str | None)

  • covered_column (str | None)

  • miscovered_column (str | None)

  • crosses_threshold_column (str | None)

  • prediction_set_size_column (str | None)

  • ambiguous_set_column (str | None)

  • metadata (Mapping[str, Any])

rows: tuple[dict[str, Any], ...]
source: str
source_rows: int
prediction_column: str | None = None
lower_column: str | None = None
upper_column: str | None = None
interval_width_column: str | None = None
covered_column: str | None = None
miscovered_column: str | None = None
crosses_threshold_column: str | None = None
prediction_set_size_column: str | None = None
ambiguous_set_column: str | None = None
metadata: Mapping[str, Any]
claim(estimate_name, *, target, **kwargs)[source]

Build a claim over one adapted conformal target column.

Parameters:
  • estimate_name (str)

  • target (str)

  • kwargs (Any)

design(claim_or_spec, **kwargs)[source]

Run claim.design(...) against the adapted rows.

Parameters:
  • claim_or_spec (Any)

  • kwargs (Any)

audit(claim_or_spec, **kwargs)[source]

Run claim.audit(...) against the adapted rows.

Parameters:
  • claim_or_spec (Any)

  • kwargs (Any)

reporting_stability(**kwargs)[source]

Audit useful conformal-derived targets from this adapter result.

Parameters:

kwargs (Any)

updatesupport.adapters.adapt_dataframe_effects(data, *, effect=None, effect_values=None, effect_column='tau_hat', source='dataframe')[source]

Adapt generic dataframe or row outputs into update-support effect rows.

Use effect when the effect is already a column in data. Use effect_values when an estimator returned a separate vector.

Parameters:
Return type:

EstimatorAdapterResult

updatesupport.adapters.adapt_conformal_regression(data, *, prediction=None, lower=None, upper=None, interval=None, interval_index=0, y_true=None, threshold=None, prediction_column='y_pred', lower_column='y_lower', upper_column='y_upper', interval_width_column='interval_width', covered_column='covered', miscovered_column='miscovered', crosses_threshold_column='crosses_threshold', source='conformal_regression')[source]

Attach conformal regression interval targets to tabular rows.

Inputs may be existing column names or array-like values. interval is a convenience for conformal libraries that return one interval array; it may have shape (n, 2) or MAPIE-style (n, 2, n_levels).

Parameters:
Return type:

ConformalAdapterResult

updatesupport.adapters.adapt_conformal_classification(data, *, prediction_sets, classes=None, set_index=0, prediction=None, y_true=None, positive_label=None, prediction_column='y_pred', prediction_set_size_column='prediction_set_size', covered_column='covered', miscovered_column='miscovered', ambiguous_set_column='ambiguous_set', contains_positive_label_column='contains_positive_label', source='conformal_classification')[source]

Attach conformal classification prediction-set targets to rows.

Parameters:
Return type:

ConformalAdapterResult

updatesupport.adapters.adapt_econml_effects(estimator, data, X, *, effect_column='tau_hat', effect_kwargs=None, source='econml')[source]

Attach estimator.effect(X) output to rows for an EconML workflow.

Parameters:
Return type:

EstimatorAdapterResult

updatesupport.adapters.adapt_dowhy_effects(estimate, data, *, effect_values=None, effect_column='tau_hat', allow_scalar=True, source='dowhy')[source]

Adapt DoWhy estimates or externally computed DoWhy effect values.

DoWhy commonly returns a scalar average effect. If effect_values is not supplied and allow_scalar is true, that scalar is repeated on every row. For heterogeneous reporting audits, pass row-level or subgroup-level effect_values instead.

Parameters:
Return type:

EstimatorAdapterResult

updatesupport.adapters.adapt_doubleml_effects(model, data, *, effect_values=None, effect_column='tau_hat', coef_index=0, allow_scalar=True, source='doubleml')[source]

Adapt DoubleML model output or externally computed effect values.

DoubleML’s common estimators expose scalar coefficients. If no effect_values are supplied, this adapter repeats model.coef on every row. Pass explicit row-level or group-level effect values when available.

Parameters:
Return type:

EstimatorAdapterResult

DoWhy integration helpers.

class updatesupport.dowhy.DoWhyRepresentationAudit(report, estimate=None, refutation_type='UpdateSupport representation stability')[source]

Bases: ReportArtifactMixin

Update-support audit packaged for a DoWhy causal workflow.

Parameters:
report: PublicDescentReport
estimate: Any | None = None
refutation_type: str = 'UpdateSupport representation stability'
property estimated_effect: float

Scalar effect estimate used as the DoWhy refutation baseline.

property new_effect: tuple[float, float]

Update-support partial-ID interval reported as the refuted effect.

property ambiguity: float

Width of the update-support partial-ID interval.

to_refutation(*, refutation_class=None)[source]

Return a DoWhy CausalRefutation carrying this audit’s interval.

Parameters:

refutation_class (type[Any] | None)

Return type:

Any

to_markdown()[source]

Render the underlying public-descent report.

Return type:

str

as_dict()[source]
Return type:

dict[str, Any]

updatesupport.dowhy.audit_dowhy_effects(data, *, estimate=None, refutation_type='UpdateSupport representation stability', source_data=None, public=None, hidden=None, effect=None, weight=None, public_columns=None, hidden_columns=None, effect_column=None, weight_column=None, candidate_refinements=None, candidate_columns=None, top=10, min_cell_weight=1.0, title='DoWhy Effect Representation Stability Audit', effect_description='estimated causal effect', observed_label='Observed effect estimate', row_count=None, row_count_label='Rows', q=None, q_radius=None)[source]

Audit a DoWhy-compatible effect target for reporting stability.

DoWhy identifies, estimates, and refutes causal effects. This helper assumes that workflow has already produced a row-level, subgroup-level, or hidden-cell-level effect target, then runs the update-support representation audit on that supplied target.

Parameters:
Return type:

DoWhyRepresentationAudit

updatesupport.dowhy.dowhy_refutation_from_report(report, *, estimate=None, estimated_effect=None, refutation_type='UpdateSupport representation stability', refutation_class=None)[source]

Convert a public-descent report into a DoWhy CausalRefutation.

new_effect is the update-support partial-ID interval, not a point estimate from a second causal estimator. Extra update-support metadata is attached to the returned object for downstream inspection.

Parameters:
Return type:

Any