[SciPy-dev] State of stats modules?

Magnus Lyckå magnus at thinkware.se
Sat Nov 3 08:47:55 CST 2001

Hi, I'm a new scipy user, and I'm still a little lost...
I've looked through the mailing list archeives and
the web site, but I guess I might have missed some info
I should have spotted... Anyway, I'll ask some questions
here... I start with this one:

What's the state of the stats module?

Just at random, I tried the aanova function and get:

Traceback (most recent call last):
   File "<interactive input>", line 1, in ?
   File "G:\Python21\scipy\stats\stats.py", line 3933, in aanova
     M = pstat.collapse(data,Bscols,-1,None,None,mean)
TypeError: collapse() takes at most 5 arguments (6 given)

collapse wants:
def collapse (listoflists,keepcols,collapsecols,sterr=None,ns=None):

In other words... No mean...

Removing the last parameter in lines 3933, 3988 and 4372 I get
a result, but I won't hang my neck out and say that it's correct
(or not).

Also, what happens is that the aanova function uses "print" to
display the result. Fine for interactive use if I just want to
see how things stand, but less amusing if I want to use the
results from the anova programmatically in further computations,
or for plotting or what ever. The return value from the function
is None. :-(

There is obviously code in ststs.py that assumes that collapse can
work with other stuff than means, as it seems to do now:

collapsed = pstat.collapse(M,btwcols,-1,None,len,mean)
# Obviously needed for-loop to get source cell-means embedded in collapse fcns
contrastmns = pstat.collapse(collapsed,btwsourcecols,-2,sterr,len,mean)
# Collapse again, this time SUMMING instead of averaging (to get cell Ns)
contrastns = pstat.collapse(collapsed,btwsourcecols,-1,None,None,
# Collapse again, this time calculating harmonicmeans (for hns)
contrasthns = pstat.collapse(collapsed,btwsourcecols,-1,None,None,

I assume that it's the following snippet in pstat.collapse that should
use the sixth parameter:

     if keepcols == []:
         means = [0]*len(collapsecols)
         for i in range(len(collapsecols)):
             avgcol = colex(listoflists,collapsecols[i])
             means[i] = stats.mean(avgcol) <=== supplied function here?
         return means

But I don't feel that I understand enough of statistics or the plan here to
patch things on my own...

Anyone caring for this?

Magnus Lyckå, Thinkware AB
Älvans väg 99, SE-907 50 UMEÅ
tel 070-582 80 65, fax: 070-612 80 65
http://www.thinkware.se/  mailto:magnus at thinkware.se

More information about the Scipy-dev mailing list