@staticmethod
def evaluate_Chi(nodeSummary, control_name):
    """
        Calculate Chi-Square statistic as split evaluation criterion for a given node.

        Args
        ----
        nodeSummary : dictionary
            The tree node summary statistics, produced by tree_node_summary() method.

        control_name : string
            The control group name.

        Returns
        -------
        d_res : Chi-Square
        """
    if control_name not in nodeSummary:
        return 0
    pc = nodeSummary[control_name][0]
    d_res = 0
    for treatment_group in nodeSummary:
        if treatment_group != control_name:
            d_res += (nodeSummary[treatment_group][0] - pc) ** 2 / max(0.1 **
                6, pc) + (nodeSummary[treatment_group][0] - pc) ** 2 / max(
                0.1 ** 6, 1 - pc)
    return d_res
