Ejemplo n.º 1
0
def correlation_p_anovar2(data_group, data_y):
    # Compute observed F-test statistic.
    F, n_groups = anovar2(data_group, data_y)
    if math.isnan(F):
        return float('NaN')
    n = len(data_group)
    assert n == len(data_y)
    # Compute p-value for F-test.
    return stats.f_sf(F, n_groups - 1, n - n_groups)
Ejemplo n.º 2
0
def correlation_p_anovar2(data_group, data_y):
    # Compute observed F-test statistic.
    F, n_groups = anovar2(data_group, data_y)
    if math.isnan(F):
        return float('NaN')
    n = len(data_group)
    assert n == len(data_y)
    # Compute p-value for F-test.
    return stats.f_sf(F, n_groups - 1, n - n_groups)
Ejemplo n.º 3
0
def test_f_sf():
    # Non-positive degrees of freedom should throw an error.
    with pytest.raises(ValueError):
        stats.f_sf(0,0,0)
    with pytest.raises(ValueError):
        stats.f_sf(2,-10,0)
    with pytest.raises(ValueError):
        stats.f_sf(2,0,-10)
    with pytest.raises(ValueError):
        stats.f_sf(2,-1,1)
    with pytest.raises(ValueError):
        stats.f_sf(2,1,-1)

    # Survival of x = 0 should be 1.
    assert relerr(1, stats.f_sf(0,1,12)) < .05
    assert relerr(1, stats.f_sf(0,6,0.5)) < .05
    assert relerr(1, stats.f_sf(0,130,121)) < .05
    
    # Survival of x < 0 should be 1.
    assert relerr(1, stats.f_sf(-1,1,12)) < .05
    assert relerr(1, stats.f_sf(-100,6,0.5)) < .05
    assert relerr(1, stats.f_sf(-0.02,130,121)) < .05

    # Test against reference values.
    assert relerr(.5173903, stats.f_sf(1,12,8)) < .05
    assert relerr(.2618860, stats.f_sf(1.9,1,3)) < .05
    assert relerr(.5000000, stats.f_sf(1,100,100)) < .05
    assert relerr(.1781364, stats.f_sf(19,14,1)) < .05
    assert relerr(.7306588, stats.f_sf(0.76,23,15)) < .05
    assert relerr(.0602978, stats.f_sf(4.3,1,12)) < .05
    assert relerr(.5590169, stats.f_sf(1.1,2,1)) < .05
    assert relerr(.1111111, stats.f_sf(8,2,2)) < .05
    assert relerr(.9999999, stats.f_sf(0.2,432,123)) < .05
    assert relerr(.9452528, stats.f_sf(0.8,432,123)) < .05
    assert relerr(.0434186, stats.f_sf(10,5,3)) < .05
    
    # Test against reference very close to zero.
    assert abserr(.0158130, stats.f_sf(11,19,4)) < .01
    assert abserr(.0022310, stats.f_sf(14,9,6)) < .01
    assert abserr(.1458691e-112, stats.f_sf(200,432,123)) < .01
    assert abserr(.2489256e-13, stats.f_sf(29,23,29)) < .01
    assert abserr(.1656276e-06, stats.f_sf(31,11,13)) < .01
    assert abserr(.6424023e-5, stats.f_sf(18,14,12)) < .01