Skip to main content

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.0

Attributes

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).

Back to top