Exemple #1
0
def format_eff_robust(df, x_axis, y_axis_fit, transform):
    df_line = df[df.use_for_line_fit == True]
    x_acc_line_trans = transform_acc(df_line[x_axis], transform)
    y_acc_line_trans = transform_acc(df_line[y_axis_fit], transform)

    lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
    intercept, slope = lin_fit[1], lin_fit[0]
    lin_fit_ys_trans = transform_acc(df[x_axis], transform) * slope + intercept
    lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

    df['eff_robust'] = df[y_axis_fit] - lin_fit_ys
    return df
Exemple #2
0
def format_eff_robust(df, x_axis, y_axis, x_axis_fit, y_axis_fit, transform):
    df_line = df[df.use_for_line_fit == True]

    if (df_line[y_axis_fit] == 0).any():
        pivot = df_line[df_line[y_axis_fit] == 0][x_axis_fit][0]

        df_line1 = df_line[df_line[x_axis_fit] < pivot]
        x_acc_line_trans = transform_acc(df_line1[x_axis_fit], transform)
        y_acc_line_trans = transform_acc(df_line1[y_axis_fit], transform)

        lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
        intercept, slope = lin_fit[1], lin_fit[0]
        lin_fit_ys_trans = transform_acc(df[x_axis_fit],
                                         transform) * slope + intercept
        lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

        df['eff_robust_y'] = df[y_axis_fit] - lin_fit_ys

        df_line2 = df_line[df_line[x_axis_fit] > pivot]
        x_acc_line_trans = transform_acc(df_line2[x_axis_fit], transform)
        y_acc_line_trans = transform_acc(df_line2[y_axis_fit], transform)

        lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
        intercept, slope = lin_fit[1], lin_fit[0]
        lin_fit_ys_trans = transform_acc(df[x_axis_fit],
                                         transform) * slope + intercept
        lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

        df.loc[df[x_axis_fit] > pivot,
               'eff_robust_y'] = (df[y_axis_fit] -
                                  lin_fit_ys)[df[x_axis_fit] > pivot]

    else:
        x_acc_line_trans = transform_acc(df_line[x_axis_fit], transform)
        y_acc_line_trans = transform_acc(df_line[y_axis_fit], transform)

        lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
        intercept, slope = lin_fit[1], lin_fit[0]
        lin_fit_ys_trans = transform_acc(df[x_axis_fit],
                                         transform) * slope + intercept
        lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

        df['eff_robust_y'] = df[y_axis_fit] - lin_fit_ys

    x_acc_line_trans = transform_acc(df_line[x_axis], transform)
    y_acc_line_trans = transform_acc(df_line[y_axis], transform)

    lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
    intercept, slope = lin_fit[1], lin_fit[0]
    lin_fit_ys_trans = transform_acc(df[x_axis], transform) * slope + intercept
    lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

    df['eff_robust_x'] = df[y_axis] - lin_fit_ys
    return df
Exemple #3
0
def calc_eff_robust_corr(df, transform, x_axis, y_axis, x_axis_fit,
                         y_axis_fit):
    df = df.copy()
    df_line = df[df.use_for_line_fit == True]

    if (df_line[y_axis_fit] == 0).any():
        pivot = df_line[df_line[y_axis_fit] == 0][x_axis_fit][0]

        df_line1 = df_line[df_line[x_axis_fit] < pivot]
        x_acc_line_trans = transform_acc(df_line1[x_axis_fit], transform)
        y_acc_line_trans = transform_acc(df_line1[y_axis_fit], transform)

        lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
        intercept, slope = lin_fit[1], lin_fit[0]
        lin_fit_ys_trans = transform_acc(df[x_axis_fit],
                                         transform) * slope + intercept
        lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

        df['eff_robust_y'] = df[y_axis_fit] - lin_fit_ys

        df_line2 = df_line[df_line[x_axis_fit] > pivot]
        x_acc_line_trans = transform_acc(df_line2[x_axis_fit], transform)
        y_acc_line_trans = transform_acc(df_line2[y_axis_fit], transform)

        lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
        intercept, slope = lin_fit[1], lin_fit[0]
        lin_fit_ys_trans = transform_acc(df[x_axis_fit],
                                         transform) * slope + intercept
        lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

        df.loc[df[x_axis_fit] > pivot,
               'eff_robust_y'] = (df[y_axis_fit] -
                                  lin_fit_ys)[df[x_axis_fit] > pivot]

    else:
        x_acc_line_trans = transform_acc(df_line[x_axis_fit], transform)
        y_acc_line_trans = transform_acc(df_line[y_axis_fit], transform)

        lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
        intercept, slope = lin_fit[1], lin_fit[0]
        lin_fit_ys_trans = transform_acc(df[x_axis_fit],
                                         transform) * slope + intercept
        lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

        df['eff_robust_y'] = df[y_axis_fit] - lin_fit_ys

    df2 = df[[x_axis, y_axis, 'use_for_line_fit']].dropna()
    df_line2 = df2[df2.use_for_line_fit == True]

    x_acc_line_trans = transform_acc(df_line2[x_axis], transform)
    y_acc_line_trans = transform_acc(df_line2[y_axis], transform)

    lin_fit = scipy.stats.linregress(x_acc_line_trans, y_acc_line_trans)
    intercept, slope = lin_fit[1], lin_fit[0]
    lin_fit_ys_trans = transform_acc(df2[x_axis],
                                     transform) * slope + intercept
    lin_fit_ys = inv_transform_acc(lin_fit_ys_trans, transform)

    df.loc[df2.index, 'eff_robust_x'] = df2[y_axis] - lin_fit_ys
    df = df[df.show_in_plot][['eff_robust_x', 'eff_robust_y']].dropna()
    return scipy.stats.pearsonr(df['eff_robust_x'], df['eff_robust_y'])[0]