问题描述:

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?

网友答案:

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

相关阅读:
Top