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.2scipy v0.10.1- all of these packages were pip’d
python v2.7.3installed 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.Nosewas required for testing, andpatsyis needed toimport statsmodels.api. The test suite also complained thatjoblibwas 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?
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