Skip to main content

ProportionGapTestScenario

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.

An observed gap between two rates, rate_a and rate_b, on n_per_group decisions each.

Tested with the pooled two-proportion z statistic against the two-sided normal critical value at significance; the interval is the unpooled normal-approximation interval at the same level.

Notes

Equation: Statistics helpers compute pooled z tests, unpooled gap intervals, and the inverse equal-size requirement.

Assumptions: Independent groups of equal size and sufficient counts for a normal approximation.

Excludes: Paired observations, multiplicity corrections, and small-sample exact inference.

References

Derivation: Statistics helpers compute pooled z tests, unpooled gap intervals, and the inverse equal-size requirement. 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.LoanApprovalGapTest
>>> round(float(scenario.gap), 4)
0.3

Attributes

Name Description
gap Signed group-A minus group-B probability difference.
interval Normal-approximation probability-gap interval at the configured group size.
n_at_critical Equal per-group count at which the observed gap reaches the critical z value.
n_per_group
pooled_rate Mean of the two group rates under equal group sizes.
rate_a
rate_b
significance
small_n_per_group
z Pooled two-proportion z statistic at the configured equal group size.
z_critical Standard-normal critical value for the supplied two-sided significance level.

Methods

Name Description
interval_at Normal-approximation probability-gap interval at n independent decisions per group.
z_at Pooled two-proportion z statistic using n independent decisions per group.

interval_at

engine.scenario_types.ProportionGapTestScenario.interval_at(n)

Normal-approximation probability-gap interval at n independent decisions per group.

Equation: calc_proportion_gap_interval(rate_a, rate_b, n, n, z_critical).

z_at

engine.scenario_types.ProportionGapTestScenario.z_at(n)

Pooled two-proportion z statistic using n independent decisions per group.

Equation: calc_two_proportion_z(rate_a, rate_b, n, n).

rate_a

Type: float.

Declared default: required.

rate_b

Type: float.

Declared default: required.

n_per_group

Type: int.

Declared default: required.

significance

Type: float.

Declared default: 0.05.

small_n_per_group

Type: Optional[int].

Declared default: None.

gap

engine.scenario_types.ProportionGapTestScenario.gap

Signed group-A minus group-B probability difference.

Equation: rate_a - rate_b.

pooled_rate

engine.scenario_types.ProportionGapTestScenario.pooled_rate

Mean of the two group rates under equal group sizes.

Equation: (rate_a + rate_b) / 2.

z_critical

engine.scenario_types.ProportionGapTestScenario.z_critical

Standard-normal critical value for the supplied two-sided significance level.

Equation: NormalDist().inv_cdf(1 - significance / 2).

z

engine.scenario_types.ProportionGapTestScenario.z

Pooled two-proportion z statistic at the configured equal group size.

Equation: z_at(n_per_group).

interval

engine.scenario_types.ProportionGapTestScenario.interval

Normal-approximation probability-gap interval at the configured group size.

Equation: interval_at(n_per_group).

n_at_critical

engine.scenario_types.ProportionGapTestScenario.n_at_critical

Equal per-group count at which the observed gap reaches the critical z value.

Per-group sample size at which this gap first reaches the critical value.

Equation: calc_equal_n_for_z(rate_a, rate_b, z_critical).

Back to top