def print_ecdf_annotations(ecdf, data, minx=-2000, weighted=True, delim="\t"): """ Returns string of 'delim'-delimited printout. Assumes that ecdf is of the form (x,p,a_n) as returned by the Stats.ecdf() method, and that data is the (optionally weighted) data provided to the same. """ import Stats ret = "" x, p, a_n = ecdf E_bar, E_moe = Stats.E(data, weighted=weighted, alpha=0.05) E_x, E_p, i = Stats.evaluate_ecdf(E_bar, x, p) zero_x, zero_p, j = Stats.evaluate_ecdf(0.0, x, p) x_q, p_q, i = Stats.find_quantile(0.05, x, p) ret += "x" + delim + "Expected Value\n" ret += str(minx) + delim + str(E_p) + "\n" ret += str(E_bar) + delim + str(E_p) + "\n" ret += str(E_bar) + delim + str(0) + "\n" ret += "\n" ret += "x" + delim + "On Time\n" ret += str(minx) + delim + str(zero_p) + "\n" ret += str(0) + delim + str(zero_p) + "\n" ret += str(0) + delim + str(0) + "\n" ret += "\n" ret += "x" + delim + "5% Quantile\n" ret += str(minx) + delim + str(p_q) + "\n" ret += str(x_q) + delim + str(p_q) + "\n" ret += str(x_q) + delim + str(0) + "\n" ret += "\n" return ret
# Route progress splits stop_numbers = split(('stop_number', ), rows) end_numbers = split(('stops_before_end', ), rows) portions = split(('route_portion', ), rows) ### Unconditioned plots (no splits) ### data_arrive = rows_to_data_arrive(rows) data_depart = rows_to_data_depart(rows) data = data_arrive del rows ## ECDF plot ## x, p, a_n = Stats.ecdf(data, weighted=True, alpha=0.05) E_bar, E_moe = Stats.E(data, weighted=True, alpha=0.05) nil, E_p, i = Stats.evaluate_ecdf(E_bar, x, p) nil, zero_p, i = Stats.evaluate_ecdf(0.0, x, p) x_q, p_q, i = Stats.find_quantile(0.05, x, p) figure() plot(x, p, 'k-', label="ECDF") #plot(x,p+a_n,'k--', label="95% CI") #plot(x,p-a_n,'k--') plot((-2000, E_bar), (E_p, E_p), 'k-.', label="Expected Value") plot((E_bar, E_bar), (0, E_p), 'k-.') plot((-2000, 0), (zero_p, zero_p), 'k--', label="On Time") plot((0, 0), (0, zero_p), 'k--')