예제 #1
0
def wilcoxontest(ranks_a, ranks_b, expects):
    """ Return wilcoxon p values of ranks_a and ranks_b
        @arg ranks_a a list() of ranks(dataset(){'label', 'score'})
        @arg ranks_b a list() of ranks(dataset(){'label', 'score'})
        @arg expects a list() of testitems(dataset(){'label', ...})
        @return p-value of two tailed wilcoxon teset
    """
    rak_x = list()
    rak_y = list()
    for i in range(expects.size()):
        for j in range(ranks_a[i].size()):
            if ranks_a[i]['label'][j] == expects['label'][i]:
                rak_x.append(j)
                break
        for j in range(ranks_b[i].size()):
            if ranks_b[i]['label'][j] == expects['label'][i]:
                rak_y.append(j)
                break
    sval, pval = lwilcoxont(rak_x, rak_y)
    #sval, pval = wilcoxon(rak_x, rak_y)
    return pval
예제 #2
0
def wilcoxontest(ranks_a, ranks_b, expects):
    """ Return wilcoxon p values of ranks_a and ranks_b
        @arg ranks_a a list() of ranks(dataset(){'label', 'score'})
        @arg ranks_b a list() of ranks(dataset(){'label', 'score'})
        @arg expects a list() of testitems(dataset(){'label', ...})
        @return p-value of two tailed wilcoxon teset
    """
    rak_x = list()
    rak_y = list()
    for i in range(expects.size()):
        for j in range(ranks_a[i].size()):
            if ranks_a[i]['label'][j] == expects['label'][i]:
                rak_x.append(j)
                break
        for j in range(ranks_b[i].size()):
            if ranks_b[i]['label'][j] == expects['label'][i]:
                rak_y.append(j)
                break
    sval, pval = lwilcoxont(rak_x, rak_y)
    #sval, pval = wilcoxon(rak_x, rak_y)
    return pval
예제 #3
0
    sign = [rank[i]/abs(rank[i]) for i in range(len(rank))]
    val = rank[0]
    st = 0
    normrank = list()
    for i in range(1, len(rank)):
        if abs(rank[i]) == val:
            cumrank += float(i + 1)
        else:
            normrank.extend([sign[j] * cumrank/(i-st) for j in range(st, i)])
            st = i
            val = abs(rank[i])
            cumrank = float(i + 1)
    normrank.extend([sign[j] * cumrank/(len(rank)-st) for j in range(st, len(rank))])

    print normrank

    wpos, wnag = 0.0, 0.0
    wpos = sum(filter(lambda x: x>0, normrank))
    wnag = - sum(filter(lambda x: x<0, normrank))
    return len(rate_a), min(wpos, wnag)



if __name__ == '__main__':
    print lwilcoxont([125, 115, 130, 140, 140, 115, 140, 125, 140, 135],
                    [110, 122, 125, 120, 140, 124, 123, 137, 135, 145])




예제 #4
0
    if len(rank) == 0:
        return 0.0
    cumrank = 1.0
    sign = [rank[i] / abs(rank[i]) for i in range(len(rank))]
    val = rank[0]
    st = 0
    normrank = list()
    for i in range(1, len(rank)):
        if abs(rank[i]) == val:
            cumrank += float(i + 1)
        else:
            normrank.extend(
                [sign[j] * cumrank / (i - st) for j in range(st, i)])
            st = i
            val = abs(rank[i])
            cumrank = float(i + 1)
    normrank.extend(
        [sign[j] * cumrank / (len(rank) - st) for j in range(st, len(rank))])

    print normrank

    wpos, wnag = 0.0, 0.0
    wpos = sum(filter(lambda x: x > 0, normrank))
    wnag = -sum(filter(lambda x: x < 0, normrank))
    return len(rate_a), min(wpos, wnag)


if __name__ == '__main__':
    print lwilcoxont([125, 115, 130, 140, 140, 115, 140, 125, 140, 135],
                     [110, 122, 125, 120, 140, 124, 123, 137, 135, 145])