Ejemplo n.º 1
0
    def test_pval_bounds(self):
        x = np.arange(1,10)
        d_ks_n, p_n = lilliefors(x, dist='norm')
        d_ks_e, p_e = lilliefors(x, dist='exp')

        assert_almost_equal(p_n, 0.200, decimal=7)
        assert_almost_equal(p_e, 0.200, decimal=7)
Ejemplo n.º 2
0
 def test_min_nobs(self):
     x = np.arange(3.)
     with pytest.raises(ValueError):
         lilliefors(x, dist='norm', pvalmethod='approx')
     x = np.arange(2.)
     with pytest.raises(ValueError):
         lilliefors(x, dist='exp', pvalmethod='approx')
Ejemplo n.º 3
0
    def test_normal(self):
        np.random.seed(3975)
        x_n = stats.norm.rvs(size=500)

        # R function call:
        # require(nortest)
        # lillie.test(x_n)

        d_ks_norm, p_norm = lilliefors(x_n, dist='norm', pvalmethod='approx')
        # shift normal distribution > 0 to exactly mirror R `KScorrect` test
        # R `KScorrect` requires all values tested for exponential
        # distribution to be > 0
        # R function call:
        # require(KScorrect)
        # LcKS(x_n+abs(min(x_n))+0.001, 'pexp')

        d_ks_exp, p_exp = lilliefors(x_n + np.abs(x_n.min()) + 0.001,
                                     dist='exp',
                                     pvalmethod='approx')
        # assert normal
        assert_almost_equal(d_ks_norm, 0.025957, decimal=3)
        assert_almost_equal(p_norm, 0.64175, decimal=3)
        # assert exp
        assert_almost_equal(d_ks_exp, 0.3436007, decimal=3)
        assert_almost_equal(p_exp, 0.001, decimal=3)
Ejemplo n.º 4
0
    def test_pval_bounds(self):
        x = stats.norm.ppf((np.arange(10.) + 0.5) / 10)
        d_ks_n, p_n = lilliefors(x, dist='norm', pvalmethod='approx')
        x = stats.expon.ppf((np.arange(10.) + 0.5) / 10)
        d_ks_e, p_e = lilliefors(x, dist='exp', pvalmethod='approx')

        assert_almost_equal(p_n, 0.99, decimal=7)
        assert_almost_equal(p_e, 0.99, decimal=7)
def stat_test(x):
    start = process_time()
    _, pval = lilliefors(x, dist='exp')
    stat, critval, alpha = anderson(x, dist='expon')
    end = process_time()
    logmsg('sample_size=%d: Anderson: %s %s %s (%f secs)',
           len(x), str(stat), str(critval), str(alpha), end - start)
Ejemplo n.º 6
0
 def test_expon(self):
     np.random.seed(3975)
     x_e = stats.expon.rvs(size=500)
     # R function call:
     # require(nortest)
     # lillie.test(x_n)
     d_ks_norm, p_norm = lilliefors(x_e, dist='norm')
     # R function call:
     # require(KScorrect)
     # LcKS(x_e, 'pexp')
     d_ks_exp, p_exp = lilliefors(x_e, dist='exp')
     # assert normal
     assert_almost_equal(d_ks_norm, 0.15581, decimal=3)
     assert_almost_equal(p_norm, 2.2e-16, decimal=3)
     # assert exp
     assert_almost_equal(d_ks_exp, 0.02763748, decimal=3)
     assert_almost_equal(p_exp, 0.200, decimal=3)
Ejemplo n.º 7
0
    def test_normal_table(self):
        np.random.seed(3975)
        x_n = stats.norm.rvs(size=500)

        d_ks_norm, p_norm = lilliefors(x_n, dist='norm', pvalmethod='table')
        # assert normal
        assert_almost_equal(d_ks_norm, 0.025957, decimal=3)
        assert_almost_equal(p_norm, 0.64175, decimal=3)
Ejemplo n.º 8
0
    def test_normal(self):
        np.random.seed(3975)
        x_n = stats.norm.rvs(size=500)

        # R function call:
        # require(nortest)
        # lillie.test(x_n)

        d_ks_norm, p_norm = lilliefors(x_n, dist='norm')
        # shift normal distribution > 0 to exactly mirror R `KScorrect` test
        # R `KScorrect` requires all values tested for exponential
        # distribution to be > 0
        # R function call:
        # require(KScorrect)
        # LcKS(x_n+abs(min(x_n))+0.001, 'pexp')

        d_ks_exp, p_exp = lilliefors(x_n+np.abs(x_n.min()) + 0.001, dist='exp')
        # assert normal
        assert_almost_equal(d_ks_norm, 0.025957, decimal=3)
        assert_almost_equal(p_norm, 0.2000, decimal=3)
        # assert exp
        assert_almost_equal(d_ks_exp, 0.3436007, decimal=3)
        assert_almost_equal(p_exp, 0.01, decimal=3)
Ejemplo n.º 9
0
    def test_x_dims(self):
        np.random.seed(3975)
        x_n = stats.norm.rvs(size=500)

        # 1d array
        data = x_n
        d_ks_norm, p_norm = lilliefors(data, dist='norm', pvalmethod='approx')
        assert_almost_equal(d_ks_norm, 0.025957, decimal=3)
        assert_almost_equal(p_norm, 0.64175, decimal=3)

        # 2d array with size 1 second dimension
        data = x_n.reshape(-1, 1)
        d_ks_norm, p_norm = lilliefors(data, dist='norm', pvalmethod='approx')
        assert_almost_equal(d_ks_norm, 0.025957, decimal=3)
        assert_almost_equal(p_norm, 0.64175, decimal=3)

        # 2d array with larger second dimension
        data = np.array([x_n, x_n]).T
        with pytest.raises(ValueError):
            lilliefors(data, dist='norm', pvalmethod='approx')

        # single-column DataFrame
        data = pd.DataFrame(data=x_n)
        d_ks_norm, p_norm = lilliefors(data, dist='norm', pvalmethod='approx')
        assert_almost_equal(d_ks_norm, 0.025957, decimal=3)
        assert_almost_equal(p_norm, 0.64175, decimal=3)

        # two-column DataFrame
        data = pd.DataFrame(data=[x_n, x_n])
        with pytest.raises(ValueError):
            lilliefors(data, dist='norm', pvalmethod='approx')

        # DataFrame with observations in columns
        data = pd.DataFrame(data=x_n.reshape(-1, 1).T)
        with pytest.raises(ValueError):
            lilliefors(data, dist='norm', pvalmethod='approx')
Ejemplo n.º 10
0
 def test_large_sample(self, reset_randomstate):
     x = np.random.randn(10000)
     lilliefors(x, pvalmethod='approx')