class_docstr: Computes predictive differences and their uncertainty intervals for
  'comparisons' and 'slopes' effects and returns a summary dataframe of the
  results.
  
  Parameters
  ----------
  model : Model
      Bambi model object.
  preds_data : pd.DataFrame
      Dataframe used to generate predictions.
  variable : VariableInfo
      Variable of interest with its name and values.
  conditional : ConditionalInfo
      Conditional covariates with their names and values (if any).
  response : ResponseInfo
      Response variable with its name and target.
  use_hdi : bool
      Whether to use the highest density interval (HDI) (True) or quantiles (False).
  kind : str
      Type of effect to compute. Either 'comparisons' or 'slopes'.
  
  Returns
  -------
  summary_df : pd.DataFrame
      Dataframe with the data used to generate predictions, the effect kind
      and type, variable of interest name and value, and the mean and uncertainty
      intervals of the predictive difference estimate.
docstr: Obtain pairwise combinations of the 'draws' keys. The dictionary keys
  represent the variable of interest's values. If 'comparisons', then
  the keys are the contrast values. If 'slopes', then the keys are the
  values of the variable of interest and the values of the variable of
  interest plus 'eps'.
docstr_tok: ["Obtain","pairwise","combinations","of","the","'draws","'","keys",".","The","dictionary","keys","represent","the","variable","of","interest","'s","values",".","If","'comparisons","'",",","then","the","keys","are","the","contrast","values",".","If","'slopes","'",",","then","the","keys","are","the","values","of","the","variable","of","interest","and","the","values","of","the","variable","of","interest","plus","'eps","'","."]
code: def set_variable_values(self, draws: dict) -> np.ndarray:
      """
      Obtain pairwise combinations of the 'draws' keys. The dictionary keys
      represent the variable of interest's values. If 'comparisons', then
      the keys are the contrast values. If 'slopes', then the keys are the
      values of the variable of interest and the values of the variable of
      interest plus 'eps'.
      """
  
      # obtain pairwise combinations of the variable of interest's values (keys)
      keys = np.array(list(draws.keys()))
      pairwise_variables = list(itertools.combinations(keys, 2))
  
      # if 'slopes' and user passed their own values, then need to index the
      # original data, and the original data plus 'eps'
      if self.kind == "slopes" and self.variable.user_passed:
          original_data, original_data_plus_eps = (
              keys[: self.variable.passed_values.size],
              keys[self.variable.passed_values.size :],
          )
          pairwise_variables = np.dstack(
              (original_data, original_data_plus_eps)
          )[0]
          self.variable.values = self.variable.values.reshape(
              2, self.variable.passed_values.size
          )
  
      return pairwise_variables
  
imports: from dataclasses import dataclass, field
  import itertools
  from typing import Dict, Union
  import arviz
  import numpy
  import pandas
  from pandas.api.types import is_categorical_dtype, is_string_dtype
  import xarray
  from bambi.models import Model
  from bambi.interpret.create_data import create_differences_data, create_predictions_data
  from bambi.interpret.utils import average_over, ConditionalInfo, enforce_dtypes, identity, merge, VariableInfo
  from bambi.utils import get_aliased_name
label_desc: Use image node_id 1 for calling the PredictiveDifferences obj's underlying member method code with example usage: obj.set_variable_values(draws) and returns: pairwise_variables