# [Scipy-tickets] [SciPy] #1798: scipy.stats.mstat.kurtosis crashes with bias=False

SciPy Trac scipy-tickets@scipy....
Sat Dec 22 01:58:17 CST 2012

```#1798: scipy.stats.mstat.kurtosis crashes with bias=False
-------------------------+--------------------------------------------------
Reporter:  true         |       Owner:  rgommers
Type:  defect       |      Status:  new
Priority:  normal       |   Milestone:  Unscheduled
Component:  scipy.stats  |     Version:  0.11.0
Keywords:               |
-------------------------+--------------------------------------------------
In the masked version of kurtosis, the variable n is an array generated by
counting the unmasked elements of an array a across a given axis:
{{{
n = a.count(axis)
}}}

Because of this, when correcting for bias (bias=False), the relevant
indices of n should be selected, just like m2 and m4:
{{{
def kurtosis(a, axis=0, fisher=True, bias=True):
a, axis = _chk_asarray(a, axis)
n = a.count(axis)
m2 = moment(a,2,axis)
m4 = moment(a,4,axis)
vals = ma.where(m2 == 0, 0, m4/ m2**2.0)
if not bias:
can_correct = (n > 3) & (m2 > 0)
if can_correct.any():
>>>         n = np.extract(can_correct, n) # this should be added
m2 = np.extract(can_correct, m2)
m4 = np.extract(can_correct, m4)
nval = 1.0/(n-2)/(n-3)*((n*n-1.0)*m4/m2**2.0-3*(n-1)**2.0)
np.place(vals, can_correct, nval+3.0)
if fisher:
return vals - 3
else:
return vals
}}}

Otherwise, this will cause line 1460
{{{
nval = 1.0/(n-2)/(n-3)*((n*n-1.0)*m4/m2**2.0-3*(n-1)**2.0)
}}}
to throw an error like:
{{{
ValueError: operands could not be broadcast together with shapes (x) (y)
}}}
where x is the total number of kurtoses (kurtosises?) returned (what n is
currently), and y is the number of kurtoses to be corrected (what n should
be).

This problem doesn't happen with the unmasked version of kurtosis because
n is a scalar in that function:
{{{
n = a.shape[axis]
}}}

--
Ticket URL: <http://projects.scipy.org/scipy/ticket/1798>
SciPy <http://www.scipy.org>
SciPy is open-source software for mathematics, science, and engineering.
```