Failing tests for python package statsmodels
-
28-06-2021 - |
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 triedv0.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 homebrewbrew install python
(i.e. not OSX native python).- I pip'd a few other packages, too:
joblib v0.6.4
,nose v1.1.2
, andpatsy v0.1.0
.Nose
was required for testing, andpatsy
is needed toimport statsmodels.api
. The test suite also complained thatjoblib
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?
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