def partial_rsqs_confounding()

in causalml/metrics/sensitivity.py [0:0]


    def partial_rsqs_confounding(sens_df, feature_name, partial_rsqs_value, range=0.01):
        """Check partial rsqs values of feature corresponding confounding amonunt of ATE
        Args:
            sens_df (pandas.DataFrame): a data frame output from causalsens
            feature_name (str): feature name to check
            partial_rsqs_value (float) : partial rsquare value of feature
            range (float) : range to search from sens_df

        Return: min and max value of confounding amount
        """

        rsqs_dict = []
        for i in sens_df.rsqs:
            if (
                partial_rsqs_value - partial_rsqs_value * range
                < i
                < partial_rsqs_value + partial_rsqs_value * range
            ):
                rsqs_dict.append(i)

        if rsqs_dict:
            confounding_min = sens_df[sens_df.rsqs.isin(rsqs_dict)].alpha.min()
            confounding_max = sens_df[sens_df.rsqs.isin(rsqs_dict)].alpha.max()
            logger.info(
                "Only works for linear outcome models right now. Check back soon."
            )
            logger.info(
                "For feature {} with partial rsquare {} confounding amount with possible values: {}, {}".format(
                    feature_name, partial_rsqs_value, confounding_min, confounding_max
                )
            )
            return [confounding_min, confounding_max]
        else:
            logger.info(
                "Cannot find correponding rsquare value within the range for input, please edit confounding",
                "values vector or use a larger range and try again",
            )