LaplaceMeanReleaseScenario
Statistics scenarios · Implementation: mlsysim/engine/scenario_definitions/statistics.py.
Construct this scenario with keyword inputs. The fields below show the types and defaults declared by this class.
The mean of a public roster of group_size values in [0, value_range] released under epsilon-DP by one Laplace draw on the sum (replace-one adjacency).
Notes
Equation: Laplace scale equals sensitivity divided by epsilon; dividing that scale by roster size gives mean error.
Assumptions: A public fixed-size roster, bounded values, replace-one adjacency, and positive epsilon.
Excludes: Membership privacy of the roster and composition across repeated releases.
References
Derivation: Laplace scale equals sensitivity divided by epsilon; dividing that scale by roster size gives mean error. Individual property contracts identify the exact accounting expression or reusable calculation. Registry entries supply the scenario inputs; this class does not turn them into measured outcomes.
Examples
Evaluate a named scenario using its declared inputs.
>>> from mlsysim import Scenarios
>>> scenario = Scenarios.SalaryMeanLaplaceRelease
>>> round(float(scenario.sensitivity.magnitude), 4)
200000.0Attributes
| Name | Description |
|---|---|
| epsilon | |
| group_size | |
| noise_scale | Laplace scale in value units from calc_laplace_scale(sensitivity, epsilon). |
| sensitivity | Replace-one sensitivity of the sum, in the same units as the permitted value range. |
| small_group_error | Expected mean error for the optional small group; requires its configured size. |
| small_group_size | |
| value_range |
Methods
| Name | Description |
|---|---|
| mean_error | Expected absolute error of the released mean in value units; group_size overrides |
mean_error
engine.scenario_types.LaplaceMeanReleaseScenario.mean_error(group_size=None)Expected absolute error of the released mean in value units; group_size overrides the configured positive roster size.
Expected absolute error of the released mean (the Laplace scale over the group).
Equation: n = group_size if group_size is None else group_size; result = noise_scale / n.
value_range
Type: Quantity.
Declared default: required.
epsilon
Type: float.
Declared default: required.
group_size
Type: int.
Declared default: required.
small_group_size
Type: Optional[int].
Declared default: None.
sensitivity
engine.scenario_types.LaplaceMeanReleaseScenario.sensitivity
Replace-one sensitivity of the sum, in the same units as the permitted value range.
The most one person can move the sum.
Equation: value_range.
noise_scale
engine.scenario_types.LaplaceMeanReleaseScenario.noise_scale
Laplace scale in value units from calc_laplace_scale(sensitivity, epsilon).
Equation: calc_laplace_scale(sensitivity, epsilon).
small_group_error
engine.scenario_types.LaplaceMeanReleaseScenario.small_group_error
Expected mean error for the optional small group; requires its configured size.
Equation: mean_error(small_group_size).