frontier
cea.frontier
Incremental cost-effectiveness analysis on the efficiency frontier.
Implements the standard decision-analytic algorithm: order interventions by cost, remove strongly dominated interventions (more costly and no more effective than another), then iteratively remove extendedly dominated interventions (whose ICER exceeds that of the next more effective intervention) until ICERs increase monotonically along the frontier.
Functions
| Name | Description |
|---|---|
| frontier | Interventions on the cost-effectiveness efficiency frontier, cheapest first. |
| icer_table | Full incremental analysis: dominance, extended dominance, and ICERs. |
frontier
cea.frontier.frontier(source, *, effect=None)Interventions on the cost-effectiveness efficiency frontier, cheapest first.
Example
import pandas as pd from heormodel.cea import frontier means = pd.DataFrame( … {“cost”: [0.0, 10.0, 5.0], “effect”: [0.0, 1.0, -1.0]}, … index=[“A”, “B”, “C”], … ) frontier(means) [‘A’, ‘B’]
icer_table
cea.frontier.icer_table(source, *, effect=None)Full incremental analysis: dominance, extended dominance, and ICERs.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| source | Outcomes | pd.DataFrame | probabilistic Outcomes (means are taken per intervention) or a per-intervention mean table indexed by intervention with columns cost and the effect column. |
required |
| effect | str | None |
Effect column name (defaults to the outcomes’ primary effect, or "effect" for plain tables). |
None |
Returns
| Name | Type | Description |
|---|---|---|
| pd.DataFrame | DataFrame indexed by intervention, sorted by cost, with columns | |
| pd.DataFrame | cost, effect, inc_cost, inc_effect, icer and |
|
| pd.DataFrame | status ("ND" on the frontier, "D" strongly dominated, |
|
| pd.DataFrame | "ED" extendedly dominated). ICERs are computed between adjacent |
|
| pd.DataFrame | frontier interventions; the cheapest frontier intervention has no ICER. |
Example
import pandas as pd from heormodel.cea import icer_table means = pd.DataFrame( … {“cost”: [0.0, 100.0, 400.0], “effect”: [0.0, 0.5, 1.0]}, … index=[“A”, “B”, “D”], … ) t = icer_table(means) float(t.loc[“D”, “icer”]) 600.0