Skip to content

Primitives

qr_quantile

qr_quantile(lipschitz: float, quantile: float, values: NDArray, voting_rights: Union[NDArray, float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_value: float = 0.0, error: float = 1e-05) -> float

Computes the quadratically regularized quantile, an estimate of the quantile of values,weighted by voting_rights, given left and right uncertainties, and with lipschitz resilience.

Parameters:

Name Type Description Default
lipschitz float

Resilience parameters. Larger values are more resilient, but less accurate.

required
quantile float

Between 0 and 1.

required
values NDArray

Values whose quantile is estimated

required
voting_rights Union[NDArray, float]

Larger voting rights can pull the output towards them with more strength

1.0
left_uncertainties Optional[NDArray]

Left uncertainty on each value. Set to zero if None.

None
right_uncertainties Optional[NDArray]

Right uncertainty. Set to left_uncertainties if None (symmetric uncertainty).

None
default_value float

Default value in the absence of data

0.0
error float

Approximation error

1e-05

Returns:

Name Type Description
out float

Lipschitz-resilient estimator of the quantile

qr_median

qr_median(lipschitz: float, values: NDArray, voting_rights: Union[NDArray, float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_value: float = 0.0, error: float = 1e-05)

The quadratically regularized median is a Lipschitz-resilient median estimator. It is equal to the qr_quantile, for quantile = 0.5.

See Article

"Robust Sparse Voting". Youssef Allouah, Rachid Guerraoui, Lê Nguyên Hoang and Oscar Villemaud (2024). AISTATS.

Parameters:

Name Type Description Default
lipschitz float

Resilience parameters. Larger values are more resilient, but less accurate.

required
values NDArray

Values whose quantile is estimated

required
voting_rights Union[NDArray, float]

Larger voting rights can pull the output towards them with more strength

1.0
left_uncertainties Optional[NDArray]

Left uncertainty on each value. Set to zero if None.

None
right_uncertainties Optional[NDArray]

Right uncertainty. Set to left_uncertainties if None (symmetric uncertainty).

None
default_value float

Default value in the absence of data

0.0
error float

Approximation error

1e-05

Returns:

Name Type Description
out float

Lipschitz-resilient estimator of the median

qr_standard_deviation

qr_standard_deviation(lipschitz: float, values: NDArray, quantile_dev: float = 0.5, voting_rights: Union[NDArray, float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_dev: float = 1.0, error: float = 1e-05, median: Optional[float] = None)

Lipschitz-resilient estimator of the standard deviation. Can be understood as a measure of polarization. It roughly measures a median deviation from the median.

For heavy-tail distributions of values, we however recommend selecting a higher quantile of deviations from the median.

Parameters:

Name Type Description Default
lipschitz float

Resilience parameters. Larger values are more resilient, but less accurate.

required
values NDArray

Values whose quantile is estimated

required
quantile_dev float

Must be between 0 and 1. Defines the quantile of deviations from qr_med that is reported.

0.5
voting_rights Union[NDArray, float]

Larger voting rights can pull the output towards them with more strength

1.0
left_uncertainties Optional[NDArray]

Left uncertainty on each value. Set to zero if None.

None
right_uncertainties Optional[NDArray]

Right uncertainty. Set to left_uncertainties if None (symmetric uncertainty).

None
default_dev float

Default value in the absence of data

1.0
error float

Approximation error

1e-05

Returns:

Name Type Description
out float

Lipschitz-resilient estimator of the quantile

qr_uncertainty

qr_uncertainty(lipschitz: float, values: NDArray, voting_rights: Union[NDArray, float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_dev: float = 1.0, error: float = 1e-05, median: Optional[float] = None)

Quadratically regularized uncertainty

TODO

Search for a better formula for qr_uncertainty if possible.

clip

clip(values: ndarray, center: float, radius: float)

clip_mean

clip_mean(voting_rights: ndarray, values: ndarray, center: float = 0.0, radius: float = 1.0)

lipschitz_resilient_mean

lipschitz_resilient_mean(lipschitz: float, values: NDArray, voting_rights: Union[NDArray[float64], float] = 1.0, left_uncertainties: Optional[NDArray] = None, right_uncertainties: Optional[NDArray] = None, default_value: float = 0.0, error: float = 1e-05)

Lipschitz-robustified mean. Lipschitz-resilient mean estimator. It provably returns the mean, given sufficient participation and bounded values

See Article

"Robust Sparse Voting". Youssef Allouah, Rachid Guerraoui, Lê Nguyên Hoang and Oscar Villemaud (2024). AISTATS.

Parameters:

Name Type Description Default
lipschitz float

Resilience parameters. Larger values are more resilient, but less accurate.

required
values NDArray

Values whose quantile is estimated

required
voting_rights Union[NDArray[float64], float]

Larger voting rights can pull the output towards them with more strength

1.0
left_uncertainties Optional[NDArray]

Left uncertainty on each value. Set to zero if None.

None
right_uncertainties Optional[NDArray]

Right uncertainty. Set to left_uncertainties if None (symmetric uncertainty).

None
default_value float

Default value in the absence of data

0.0
error float

Approximation error

1e-05

Returns:

Name Type Description
out float

Lipschitz-resilient estimator of the mean