[Scipy-svn] r4237 - trunk/scipy/stats
scipy-svn@scip...
scipy-svn@scip...
Tue May 6 12:16:53 CDT 2008
Author: pierregm
Date: 2008-05-06 12:16:51 -0500 (Tue, 06 May 2008)
New Revision: 4237
Modified:
trunk/scipy/stats/mstats.py
Log:
mstats : kendall_tau : fixed a pb when n=2
theil_slopes: return a (4,) tuple instead of a (3,(),) tuple
Modified: trunk/scipy/stats/mstats.py
===================================================================
--- trunk/scipy/stats/mstats.py 2008-05-06 17:14:47 UTC (rev 4236)
+++ trunk/scipy/stats/mstats.py 2008-05-06 17:16:51 UTC (rev 4237)
@@ -538,6 +538,9 @@
y = ma.array(y, mask=m, copy=True)
n -= m.sum()
#
+ if n < 2:
+ return (np.nan, np.nan)
+ #
rx = ma.masked_equal(rankdata(x, use_missing=use_missing),0)
ry = ma.masked_equal(rankdata(y, use_missing=use_missing),0)
idx = rx.argsort()
@@ -563,9 +566,12 @@
v1 = np.sum(v*k*(k-1) for (k,v) in xties.iteritems()) * \
np.sum(v*k*(k-1) for (k,v) in yties.iteritems())
v1 /= 2.*n*(n-1)
- v2 = np.sum(v*k*(k-1)*(k-2) for (k,v) in xties.iteritems()) * \
- np.sum(v*k*(k-1)*(k-2) for (k,v) in yties.iteritems())
- v2 /= 9.*n*(n-1)*(n-2)
+ if n > 2:
+ v2 = np.sum(v*k*(k-1)*(k-2) for (k,v) in xties.iteritems()) * \
+ np.sum(v*k*(k-1)*(k-2) for (k,v) in yties.iteritems())
+ v2 /= 9.*n*(n-1)*(n-2)
+ else:
+ v2 = 0
else:
v1 = v2 = 0
var_s /= 18.
@@ -752,7 +758,7 @@
Ru = np.round((nt - z*sigma)/2. + 1)
Rl = np.round((nt + z*sigma)/2.)
delta = slopes[[Rl,Ru]]
- return medslope, medinter, delta
+ return medslope, medinter, delta[0], delta[1]
def sen_seasonal_slopes(x):
More information about the Scipy-svn
mailing list