Skip to content

Calculate AUC

calculate_auc(x_values, y_values)

Calculate area under curve (AUC).

Calculates AUC for curve. X-axis should be either proportion of area ore false positive rate. Y-axis should be always true positive rate. AUC is calculated with sklearn.metrics.auc which uses trapezoidal rule for calculation.

Parameters:

Name Type Description Default
x_values Union[ndarray, Series]

Either proportion of area or false positive rate values.

required
y_values Union[ndarray, Series]

True positive rate values.

required

Returns:

Type Description
float

The area under curve.

Raises:

Type Description
InvalidParameterValueException

x_values or y_values are out of bounds.

Source code in eis_toolkit/validation/calculate_auc.py
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
@beartype
def calculate_auc(x_values: Union[np.ndarray, pd.Series], y_values: Union[np.ndarray, pd.Series]) -> float:
    """Calculate area under curve (AUC).

    Calculates AUC for curve. X-axis should be either proportion of area ore false positive rate. Y-axis should be
    always true positive rate. AUC is calculated with sklearn.metrics.auc which uses trapezoidal rule for calculation.

    Args:
        x_values: Either proportion of area or false positive rate values.
        y_values: True positive rate values.

    Returns:
        The area under curve.

    Raises:
        InvalidParameterValueException: x_values or y_values are out of bounds.
    """
    if x_values.max() > 1 or x_values.min() < 0:
        raise InvalidParameterValueException("x_values should be within range 0-1")

    if y_values.max() > 1 or y_values.min() < 0:
        raise InvalidParameterValueException("y_values should be within range 0-1")

    auc_value = _calculate_auc(x_values=x_values, y_values=y_values)
    return auc_value