'Provide a summary of a mediation analysis.'

def summary(self, alpha=0.05):

    columns = ['Estimate', 'Lower    CI    bound', 'Upper    CI    bound', 'P-value']
    index = ['ACME    (control)', 'ACME    (treated)', 'ADE    (control)', 'ADE    (treated)', 'Total    effect', 'Prop.    mediated    (control)', 'Prop.    mediated    (treated)', 'ACME    (average)', 'ADE    (average)', 'Prop.    mediated    (average)']
    smry = pd.DataFrame(columns=columns, index=index)
    for (i, vec) in enumerate([self.ACME_ctrl, self.ACME_tx, self.ADE_ctrl, self.ADE_tx, self.total_effect, self.prop_med_ctrl, self.prop_med_tx, self.ACME_avg, self.ADE_avg, self.prop_med_avg]):
        if ((vec is self.prop_med_ctrl) or (vec is self.prop_med_tx) or (vec is self.prop_med_avg)):
            smry.iloc[(i, 0)] = np.median(vec)
        else:
            smry.iloc[(i, 0)] = vec.mean()
        smry.iloc[(i, 1)] = np.percentile(vec, ((100 * alpha) / 2))
        smry.iloc[(i, 2)] = np.percentile(vec, (100 * (1 - (alpha / 2))))
        smry.iloc[(i, 3)] = _pvalue(vec)
    if (pdc.version < '0.17.0'):
        smry = smry.convert_objects(convert_numeric=True)
    else:
        smry = smry.apply(pd.to_numeric, errors='coerce')
    return smry
