Question

I've downloaded the Python package statsmodels (using pip) and run the tests, and found several were failing out of the gate. The test command is

>>> import statsmodels.api as sm
>>> sm.test()

There are two errors and one failure:

=====================================================================
ERROR: statsmodels.sandbox.panel.test_sandwich.test_cov_cluster_2groups
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/usr/local/lib/python2.7/site-packages/statsmodels/sandbox/panel/test_sandwich.py", line 30, in test_cov_cluster_2groups
    cov01, covg, covt = sw.cov_cluster_2groups(res, group, group2=time)
  File "/usr/local/lib/python2.7/site-packages/statsmodels/sandbox/panel/sandwich_covariance.py", line 555, in cov_cluster_2groups
    group_intersection = Group(group)
  File "/usr/local/lib/python2.7/site-packages/statsmodels/tools/grouputils.py", line 182, in __init__
    uni, uni_idx, uni_inv = combine_indices(group)
  File "/usr/local/lib/python2.7/site-packages/statsmodels/tools/grouputils.py", line 60, in combine_indices
    return_inverse=True)
  File "/usr/local/lib/python2.7/site-packages/numpy/lib/arraysetops.py", line 178, in unique
perm = ar.argsort(kind='mergesort')
TypeError: requested sort not available for type

======================================================================
ERROR: statsmodels.tsa.base.tests.test_datetools.test_infer_freq
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
  File "/usr/local/lib/python2.7/site-packages/statsmodels/tsa/base/tests/test_datetools.py", line 63, in test_infer_freq
    npt.assert_string_equal(_infer_freq(b), 'B')
  File "/usr/local/lib/python2.7/site-packages/statsmodels/tsa/base/datetools.py", line 234, in _infer_freq
    elif delta >= timedelta(28*nobs) and delta <= timedelta(31*nobs):
TypeError: ufunc 'greater_equal' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule 'safe'

======================================================================
FAIL: test_monotone_fn_inverter (statsmodels.distributions.tests.test_ecdf.TestDistributions)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/statsmodels/distributions/tests/test_ecdf.py", line 41, in test_monotone_fn_inverter
    npt.assert_array_equal(f.y, x[::1])
  File "/usr/local/lib/python2.7/site-packages/numpy/testing/utils.py", line 707, in assert_array_equal
    verbose=verbose, header='Arrays are not equal')
  File "/usr/local/lib/python2.7/site-packages/numpy/testing/utils.py", line 636, in assert_array_compare
    raise AssertionError(msg)
AssertionError: 
Arrays are not equal

(mismatch 100.0%)
 x: array([ 15.,  14.,  13.,  12.,  11.,  10.,   9.,   8.,   7.,   6.])
 y: array([ 6,  7,  8,  9, 10, 11, 12, 13, 14, 15])

----------------------------------------------------------------------
Ran 1454 tests in 67.411s

Other possibly helpful information:

  • statsmodel v0.4.0 (also tried v0.5.0)
  • numpy v1.6.2
  • scipy v0.10.1
  • all of these packages were pip'd
  • python v2.7.3 installed on Mac OSX 10.8 using homebrew brew install python (i.e. not OSX native python).
  • I pip'd a few other packages, too: joblib v0.6.4, nose v1.1.2, and patsy v0.1.0. Nose was required for testing, and patsy is needed to import statsmodels.api. The test suite also complained that joblib was needed for running in parallel.

I'm not sure of what to make of the first two errors, and the failure looks a bit weird, kind of like an implementation change or something...but I suspect that the statsmodels guys/gals ran their tests before they called it a day :) So what's going on here?

Was it helpful?

Solution

Please try the latest release http://pypi.python.org/pypi/statsmodels/0.4.3

As far as I remember, all these errors are fixed.

The first error is a change in the behavior of numpy in 1.6.2.

I think, the second is related to the change in datetime handling with the transition to using the new numpy dtypes in newer pandas versions.

The last was a mistake in the test.

The mailing list or issue tracker might be better places to report these test failures: http://groups.google.com/group/pystatsmodels https://github.com/statsmodels/statsmodels/issues

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top