Esempio n. 1
0
def pearson_r(x, y):
    assert len(x) == len(y)
    x_bar = average(x)
    y_bar = average(y)
    s_x = sqrt(s_2(x))
    s_y = sqrt(s_2(y))
    tmp = 0.0
    for i in range(0, len(x)):
        tmp += ((x[i] - x_bar) * (y[i] - y_bar) / s_x / s_y)
    return tmp / (len(x) - 1)
Esempio n. 2
0
def min_2(x, y):
    assert len(x) == len(y)
    x_bar = average(x)
    y_bar = average(y)
    lxy_1 = 0.0
    for i in range(0, len(x)):
        lxy_1 += (x[i] * y[i])
    lxy = lxy_1 - sum(x) * sum(y) / len(x)
    l_xx = sum(a ** 2 for a in x) - sum(x) ** 2 / len(x)
    b = lxy / l_xx
    a = y_bar - b * x_bar
    r = pearson_r.pearson_r(x, y)
    print('{}: y = {} + {}*x'.format(r, a, b))
    return [r, a, b]
Esempio n. 3
0
def infer_by_t(l1, l2, alpha=0.01, sigma=0):
    n1 = len(l1)
    n2 = len(l2)
    x_aver = average(l1)
    y_aver = average(l2)
    s_1sq = s_2(l1)
    s_2sq = s_2(l2)
    s_w2 = ((n1 - 1) * s_1sq + (n2 - 1) * s_2sq) / (n1 + n2 - 2)

    tv = ((x_aver - y_aver) - sigma) / sqrt(s_w2 * (1 / n1 + 1 / n2))
    t_a = t.ppf(alpha, n1 + n2 - 2)
    print('tv {} t_a {}'.format(tv, t_a))
    if tv < t_a:
        print('mu1 < mu2')
    else:
        print('mu1 >= mu2')
Esempio n. 4
0
def infer_by_t(l1, l2, alpha=0.01, sigma=0):
    n1 = len(l1)
    n2 = len(l2)
    x_aver = average(l1)
    y_aver = average(l2)
    s_1sq = s_2(l1)
    s_2sq = s_2(l2)
    s_w2 = ((n1 - 1) * s_1sq + (n2 - 1) * s_2sq) / (n1 + n2 - 2)

    tv = ((x_aver - y_aver) - sigma) / sqrt(s_w2 * (1 / n1 + 1 / n2))
    t_a = t.ppf(alpha, n1 + n2 - 2)
    print('tv {} t_a {}'.format(tv, t_a))
    if tv < t_a:
        print('mu1 < mu2')
    else:
        print('mu1 >= mu2')
Esempio n. 5
0
def t_check(l, mu, alpha=0.05):
    aver = average(l)
    n = len(l)
    ss = s_2(l)
    tt = (aver - mu) * sqrt(n) / sqrt(ss)
    l, r = t.interval(1 - alpha, n - 1)
    if tt > r or tt < l:
        print('reject')
    else:
        print('accept')
Esempio n. 6
0
def infer_ks_test_goodness(l1):
    # l = np.histogram(l1)
    # n = len(l)
    mean = average(l1)
    sigma = std(l1)
    res = kstest(l1, 'norm', [mean, sigma])
    if res[1] < 0.01:
        print('reject')
    else:
        print('accept')
    print(res)
Esempio n. 7
0
def infer_ks_test_goodness(l1):
    # l = np.histogram(l1)
    # n = len(l)
    mean = average(l1)
    sigma = std(l1)
    res = kstest(l1, 'norm', [mean, sigma])
    if res[1] < 0.01:
        print('reject')
    else:
        print('accept')
    print(res)