Exemplo n.º 1
0
def test_sem_and_variability():
    "Test variability() and standard_error_of_the_mean() functions"
    ds = datasets.get_loftus_masson_1994()
    y = ds['n_recalled'].x
    x = ds['exposure'].as_factor()
    match = ds['subject']

    # invalid spec
    assert_raises(ValueError, stats.variability, y, 0, 0, '1mile', 0)
    assert_raises(ValueError, stats.variability, y, 0, 0, 'ci7ci', 0)

    # standard error
    target = scipy.stats.sem(y, 0, 1)
    e = stats.variability(y, None, None, 'sem', False)
    assert_almost_equal(e, target)
    e = stats.variability(y, None, None, '2sem', False)
    assert_almost_equal(e, 2 * target)
    # within subject standard-error
    target = scipy.stats.sem(stats.residuals(y[:, None], match), 0, len(match.cells))
    assert_almost_equal(stats.variability(y, None, match, 'sem', True), target)
    assert_almost_equal(stats.variability(y, None, match, 'sem', False), target)
    # one data point per match cell
    n = match.df + 1
    assert_raises(ValueError, stats.variability, y[:n], None, match[:n], 'sem', True)

    target = np.array([scipy.stats.sem(y[x == cell], 0, 1) for cell in x.cells])
    es = stats.variability(y, x, None, 'sem', False)
    assert_allclose(es, target)

    stats.variability(y, x, None, 'sem', True)

    # confidence intervals
    stats.variability(y, None, None, '95%ci', False)
    stats.variability(y, x, None, '95%ci', True)
    stats.variability(y, x, match, '95%ci', True)
Exemplo n.º 2
0
def test_variability():
    "Test variability functions"
    ds = datasets.get_loftus_masson_1994()
    y = ds['n_recalled'].x.astype(np.float64)
    x = ds['exposure'].as_factor()
    match = ds['subject']

    sem = scipy.stats.sem(y, 0, 1)
    ci = sem * scipy.stats.t.isf(0.05 / 2., len(y) - 1)

    # invalid spec
    with pytest.raises(ValueError):
        stats.variability(y, 0, 0, '1mile', 0)
    with pytest.raises(ValueError):
        stats.variability(y, 0, 0, 'ci7ci', 0)

    # standard error
    assert stats.variability(y, None, None, 'sem', False) == sem
    assert stats.variability(y, None, None, '2sem', False) == 2 * sem
    # within subject standard-error
    target = scipy.stats.sem(stats.residuals(y[:, None], match), 0,
                             len(match.cells))[0]
    assert stats.variability(y, None, match, 'sem',
                             True) == pytest.approx(target)
    assert stats.variability(y, None, match, 'sem',
                             False) == pytest.approx(target)
    # one data point per match cell
    n = match.df + 1
    with pytest.raises(ValueError):
        stats.variability(y[:n], None, match[:n], 'sem', True)

    target = np.array(
        [scipy.stats.sem(y[x == cell], 0, 1) for cell in x.cells])
    es = stats.variability(y, x, None, 'sem', False)
    assert_allclose(es, target)

    stats.variability(y, x, None, 'sem', True)

    # confidence intervals
    assert stats.variability(y, None, None, '95%ci',
                             False) == pytest.approx(ci)
    assert stats.variability(y, x, None, '95%ci',
                             True) == pytest.approx(3.86,
                                                    abs=1e-2)  # L&M: 3.85
    assert stats.variability(y, x, match, '95%ci',
                             True) == pytest.approx(0.52, abs=1e-2)

    assert_equal(
        stats.variability(y, x, None, '95%ci', False)[::-1],
        stats.variability(y, x, None, '95%ci', False, x.cells[::-1]))
Exemplo n.º 3
0
def test_sem_and_variability():
    "Test variability() and standard_error_of_the_mean() functions"
    ds = datasets.get_loftus_masson_1994()
    y = ds['n_recalled'].x.astype(np.float64)
    x = ds['exposure'].as_factor()
    match = ds['subject']

    # invalid spec
    assert_raises(ValueError, stats.variability, y, 0, 0, '1mile', 0)
    assert_raises(ValueError, stats.variability, y, 0, 0, 'ci7ci', 0)

    # standard error
    target = scipy.stats.sem(y, 0, 1)
    e = stats.variability(y, None, None, 'sem', False)
    assert_almost_equal(e, target)
    e = stats.variability(y, None, None, '2sem', False)
    assert_almost_equal(e, 2 * target)
    # within subject standard-error
    target = scipy.stats.sem(stats.residuals(y[:, None], match), 0,
                             len(match.cells))
    assert_almost_equal(stats.variability(y, None, match, 'sem', True), target)
    assert_almost_equal(stats.variability(y, None, match, 'sem', False),
                        target)
    # one data point per match cell
    n = match.df + 1
    assert_raises(ValueError, stats.variability, y[:n], None, match[:n], 'sem',
                  True)

    target = np.array(
        [scipy.stats.sem(y[x == cell], 0, 1) for cell in x.cells])
    es = stats.variability(y, x, None, 'sem', False)
    assert_allclose(es, target)

    stats.variability(y, x, None, 'sem', True)

    # confidence intervals
    stats.variability(y, None, None, '95%ci', False)
    stats.variability(y, x, None, '95%ci', True)
    stats.variability(y, x, match, '95%ci', True)

    assert_equal(
        stats.variability(y, x, None, '95%ci', False)[::-1],
        stats.variability(y, x, None, '95%ci', False, x.cells[::-1]))
Exemplo n.º 4
0
def test_variability():
    "Test variability functions"
    ds = datasets.get_loftus_masson_1994()
    y = ds['n_recalled'].x.astype(np.float64)
    x = ds['exposure'].as_factor()
    match = ds['subject']

    sem = scipy.stats.sem(y, 0, 1)
    ci = sem * scipy.stats.t.isf(0.05 / 2., len(y) - 1)

    # invalid spec
    assert_raises(ValueError, stats.variability, y, 0, 0, '1mile', 0)
    assert_raises(ValueError, stats.variability, y, 0, 0, 'ci7ci', 0)

    # standard error
    assert_almost_equal(stats.variability(y, None, None, 'sem', False), sem)
    assert_almost_equal(stats.variability(y, None, None, '2sem', False), 2 * sem)
    # within subject standard-error
    target = scipy.stats.sem(stats.residuals(y[:, None], match), 0, len(match.cells))
    assert_almost_equal(stats.variability(y, None, match, 'sem', True), target)
    assert_almost_equal(stats.variability(y, None, match, 'sem', False), target)
    # one data point per match cell
    n = match.df + 1
    assert_raises(ValueError, stats.variability, y[:n], None, match[:n], 'sem', True)

    target = np.array([scipy.stats.sem(y[x == cell], 0, 1) for cell in x.cells])
    es = stats.variability(y, x, None, 'sem', False)
    assert_allclose(es, target)

    stats.variability(y, x, None, 'sem', True)

    # confidence intervals
    assert_almost_equal(stats.variability(y, None, None, '95%ci', False), ci)
    assert_almost_equal(stats.variability(y, x, None, '95%ci', True), 3.86, 2)  # L&M: 3.85
    assert_almost_equal(stats.variability(y, x, match, '95%ci', True), 0.52, 2)

    assert_equal(stats.variability(y, x, None, '95%ci', False)[::-1],
                 stats.variability(y, x, None, '95%ci', False, x.cells[::-1]))