Esempio n. 1
0
    group_lt = df.groupby(covariate).apply(lambda sfr: mcf(sfr, robust=True, positive=False))

    df1, df2 = group_df.ix[cohort1], group_df.ix[cohort2]
    lt1, lt2 = group_lt.ix[cohort1], group_lt.ix[cohort2]

    lt_diff = mcfdiff(lt1, lt2)

    # Plot, no stratification
    fig, (ax1, ax2) = plt.subplots(2, 1)
    plot_data(df, ax=ax1)
    plot_mcf(lt, ax=ax2)
    plt.tight_layout()

    # Plot, stratified
    fig, (ax1, ax2) = plt.subplots(2, 1)
    plot_datas([(cohort1, df1), (cohort2, df2)], ax=ax1)
    plot_mcfs([(cohort1, lt1), (cohort2, lt2)], ax=ax2)

    # Comparison plot
    fig, ax1 = plt.subplots(1, 1)
    plot_mcfdiff(lt_diff, ax=ax1, label='%s vs. %s' % (cohort1, cohort2))
    plt.tight_layout()

    # Compute p-values
    p_value0 = logrank(df1, df2)
    p_value1 = mcfequal(df1, df2)
    p_value2 = mcfequal(df1, df2, robust=True)
    print "p-values: %.3f / %.3f (robust %.3f)" % (p_value0, p_value1, p_value2)

    plt.show()
Esempio n. 2
0
    # Gearboxes Example
    raw_data = pd.read_csv('datas/gearbox_recurrent.csv',
                           sep=';')  #, usecols=[0,1,2])
    raw_data = raw_data[raw_data['SaleMonth'].isin([1, 2, 3, 4])]
    df = transform_population(raw_data)
    lt = mcf(df, robust=False, positive=False, interval=True)
    #ct = mcfcost(df, robust=False, positive=False, interval=True)

    #lt_cost = mcf_cost(fr, mcf_compound=lt)
    #print lt_cost.head()
    #plot_cost(mcf_cost)

    covariate = 'SaleMonth'
    group_df = raw_data.groupby(covariate).apply(
        lambda sfr: transform_population(sfr))
    dfs = list(group_df.groupby(level=0))
    lts = [(cohort, mcf(cohort_df, robust=False, positive=False))
           for cohort, cohort_df in dfs]
    cts = [(cohort, mcfcost(cohort_df, mcf_compound=cohort_mcf, robust=False, positive=False)) for\
           (cohort, cohort_df), (cohort, cohort_mcf) in zip(dfs,lts)]
    datas = [(cohort, population_reverse_costs(cohort_df))
             for cohort, cohort_df in dfs]

    plot_datas(datas, alpha=0.01)
    fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True)
    plot_mcfs(lts, ax=ax1, CI=False)
    plot_mcfs(cts, ax=ax2, cost=True, CI=False)
    ax1.set_ylim([0.0, 0.01])
    plt.show()
Esempio n. 3
0
    group_lt = df.groupby(covariate).apply(
        lambda sfr: mcf(sfr, robust=True, positive=True))  #, interval=True))

    df1, df2 = group_df.ix[cohort1], group_df.ix[cohort2]
    lt1, lt2 = group_lt.ix[cohort1], group_lt.ix[cohort2]

    lt_diff = mcfdiff(lt1, lt2)

    # Plot, no stratification
    fig, (ax1, ax2) = plt.subplots(2, 1)
    plot_data(df, ax=ax1)
    plot_mcf(lt, ax=ax2)
    plt.tight_layout()

    # Plot, stratified
    fig, (ax1, ax2) = plt.subplots(2, 1)
    plot_datas([(cohort1, df1), (cohort2, df2)], ax=ax1)
    plot_mcfs([(cohort1, lt1), (cohort2, lt2)], ax=ax2)

    # Comparison plot
    fig, ax1 = plt.subplots(1, 1)
    plot_mcfdiff(lt_diff, ax=ax1, label='%s vs. %s' % (cohort1, cohort2))
    plt.tight_layout()

    # Compute p-values
    p_value1 = mcfequal(df1, df2)
    p_value2 = mcfequal(df1, df2, robust=True)
    print "p-values: %.3f (robust %.3f)" % (p_value1, p_value2)

    plt.show()
Esempio n. 4
0
import matplotlib.pyplot as plt
from data_operations import transform_population, mcf, mcfdiff, mcfequal,\
    plot_data, plot_datas, plot_mcf, plot_mcfs, plot_mcfdiff, plot_mcfdiffs, population_reverse

if __name__ == '__main__':

    # Compressor Example
    raw_data = pd.read_csv('datas/compressor_population.csv',
                           sep=';')  #, usecols=[0,1,2])
    #raw_data = raw_data.groupby('Time', as_index=False).sum()
    df = transform_population(raw_data)
    print population_reverse(df)
    group_df = raw_data.groupby('Building').apply(
        lambda sdata: population_reverse(transform_population(sdata)))
    dfs = list(group_df.groupby(level=0))

    lt1 = mcf(df, robust=False, positive=False)
    lt2 = mcf(df, robust=False, positive=True)

    plot_datas(dfs, alpha=0.1)

    fig, (ax1, ax2) = plt.subplots(1, 2, sharex=True, sharey=True)
    plot_mcf(lt1, ax=ax1, label='Normal limits')
    plot_mcf(lt2, ax=ax2, label='Normal limits (positive)')
    plt.ylim([-0.005, 0.1])
    plt.show()

    #lt_cost = mcf_cost(fr, mcf_compound=lt)
    #print lt_cost.head()
    #plot_cost(mcf_cost)