def comb_cdf(x1, x2, **kwargs): """ Compute the combined CDF """ """ x12 = x1 U x2, f1 = F1(x12), f2 = F2(x12) """ """ Input """ """ x1: Array of double """ """ x2: Array of double """ """ **kwargs: issorted - True or False. Default is False """ """ Return: (x12, f1, f2) """ isSortedVal = False mtype = "dice" n1 = float(len(x1)) n2 = float(len(x2)) if "issorted" in kwargs: isSortedVal = kwargs["issorted"] if "mtype" in kwargs: mtype = kwargs["mtype"] if isSortedVal == False: x1.sort() x2.sort() x12max = min(x1.max(), x2.max()) sx12 = set(x1).union(set(x2)) px12 = np.array(list(sx12)) px12.sort() x12 = remove_outliers(px12, 0.0, x12max) n12 = len(x12) if False: f1 = np.zeros(n12) f2 = np.zeros(n12) i = 0 while i < n12: xij = x12[i] idx1 = np.argwhere(x1 <= xij) if (len(idx1) > 0): f1[i] = (idx1.max() + 1) / (n1 + 1.0) else: f1[i] = 0.0 idx2 = np.argwhere(x2 <= xij) if (len(idx2) > 0): f2[i] = (idx2.max() + 1) / (n2 + 1.0) else: f2[i] = 0.0 i += 1 else: pass f1 = np.array( [len(np.argwhere(x1 <= xij)) / float(n1 + 1.0) for xij in x12]) f2 = np.array( [len(np.argwhere(x2 <= xij)) / float(n2 + 1.0) for xij in x12]) return (x12, f1, f2)
def comb_cdf(x1, x2, **kwargs): """ Compute the combined CDF """ """ x12 = x1 U x2, f1 = F1(x12), f2 = F2(x12) """ """ Input """ """ x1: Array of double """ """ x2: Array of double """ """ **kwargs: issorted - True or False. Default is False """ """ Return: (x12, f1, f2) """ isSortedVal = False mtype = "dice" n1 = float(len(x1)) n2 = float(len(x2)) if "issorted" in kwargs: isSortedVal = kwargs["issorted"] if "mtype" in kwargs: mtype = kwargs["mtype"] if isSortedVal == False: x1.sort() x2.sort() x12max = min(x1.max(), x2.max()) sx12 = set(x1).union(set(x2)) px12 = np.array(list(sx12)) px12.sort() x12 = remove_outliers(px12,0.0, x12max) n12 = len(x12) if False: f1 = np.zeros(n12) f2 = np.zeros(n12) i = 0 while i < n12: xij = x12[i] idx1 = np.argwhere(x1 <= xij) if ( len(idx1) > 0 ): f1[i] = (idx1.max()+1)/(n1 + 1.0) else: f1[i] = 0.0 idx2 = np.argwhere(x2 <= xij) if ( len(idx2) > 0 ): f2[i] = (idx2.max()+1)/(n2 + 1.0) else: f2[i] = 0.0 i+= 1 else: pass f1 = np.array([len(np.argwhere(x1 <= xij))/float(n1 + 1.0) for xij in x12]) f2 = np.array([len(np.argwhere(x2 <= xij))/float(n2 + 1.0) for xij in x12]) return (x12,f1,f2)
def simple_dice(xs, ys): r = SystemRandom() x = remove_outliers(np.array(xs), 0, np.max(xs)) y = remove_outliers(np.array(ys), 0, np.max(ys)) x.sort() y.sort() nx = len(x) ny = len(y) darray = np.zeros(50) for i in xrange(0, 50): if nx < ny: xprime = x yprime = r.sample(y, nx) n = float(nx) else: xprime = r.sample(x, ny) yprime = y n = float(ny) xprime.sort() yprime.sort() darray[i] = kumar_hassebrook(xprime, yprime) mu = np.mean(darray) sigma = np.std(darray) conf_level = 0.99 alpha = 1 - conf_level alpha = 1.0 - conf_level z_alpha_2 = norm.ppf(1 - (alpha / 2.0)) e = z_alpha_2 * sigma / math.sqrt(len(darray)) return mu + e
def simple_dice(xs, ys): r = SystemRandom() x = remove_outliers(np.array(xs), 0, np.max(xs)) y = remove_outliers(np.array(ys), 0, np.max(ys)) x.sort() y.sort() nx = len(x) ny = len(y) darray = np.zeros(50) for i in xrange(0,50): if nx < ny: xprime = x yprime = r.sample(y, nx) n = float(nx) else: xprime = r.sample(x, ny) yprime = y n = float(ny) xprime.sort() yprime.sort() darray[i] = kumar_hassebrook(xprime,yprime) mu = np.mean(darray) sigma = np.std(darray) conf_level = 0.99 alpha = 1-conf_level alpha = 1.0 - conf_level z_alpha_2 = norm.ppf(1-(alpha/2.0)) e = z_alpha_2 * sigma/math.sqrt(len(darray)) return mu+e