code: def execute(self, input: BiasMetricInput) -> BiasMetricOutput:
      results = pd.Series(index=input.p_groups.columns)
      for group_name in input.p_groups.columns:
          group = input.p_groups[group_name]
          others = get_p_others(
              input.p_groups, group_name, input.privileged_race
          )
          group_p = group.multiply(input.y_pred).sum() / group.sum()
          others_p = others.multiply(input.y_pred).sum() / others.sum()
          group_size = group.sum()
          others_size = others.sum()
          results[group_name] = GroupsResults(
              group_p, others_p, group_size, others_size
          )
      return BiasMetricOutput(results)
  
file_path: bias-detector/bias_detector/bias_metrics/PositivePredProbDiff.py
imports: import numpy
  import pandas
  from bias_detector.GroupsResults import GroupsResults
  from bias_detector.bias_metrics.BiasMetricImpl import BiasMetricImpl
  from bias_detector.bias_metrics.BiasMetricInput import BiasMetricInput
  from bias_detector.bias_metrics.BiasMetricOutput import BiasMetricOutput
  from bias_detector.common import get_p_others
label_desc: Use image node_id 1 for calling the PositivePredProbDiff obj's underlying member method code with example usage: obj.execute(input) and returns: BiasMetricOutput