Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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
Esempio n. 4
0
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