# Scipy stats.kurtosis Function

`Kurtosis` in statistics helps to find out the difference between the heaviness of the tails of a particular distribution and the heaviness of the tails of a normal distribution of a given data. So, this statistical measure helps identify if the tails of a particular distribution consist of extreme value.

Along with this statistical measure, there is one more metric known as `excess kurtosis`. This measure helps in comparing the kurtosis of a particular distribution with the kurtosis of a normal distribution. Excess kurtosis can be calculated as below.

``````Excess Kurtosis = Kurtosis - 3
``````

There are three types of `kurtosis`. The type of `kurtosis` is defined by the `excess kurtosis` of a specific distribution.

• Mesokurtic - If a given data represents a mesokurtic distribution, it shows an excess kurtosis that is zero or close to zero. In other words, a given data follows a mesokurtic distribution if it shows a normal distribution.
• Leptokurtic - Leptokurtic shows a positive excess kurtosis. The leptokurtic distribution represents very heavy tails on both sides, which denotes some values at an uncommon distance from other values in the data, also known as `outliers`.
• Platykurtic - Platykurtic distribution represents a negative excess kurtosis. The kurtosis shows a distribution that has flat tails. Flat tails in a distribution indicate that there are small outliers present.

## the `scipy.stats.kurtosis` Function

The `scipy.stats.kurtosis` function of the `SciPy` library helps in calculating the `kurtosis` of a given dataset.

### Syntax

``````scipy.stats.kurtosis(a,
axis = 0,
fisher = True,
bias = True,
nan_policy = 'raise')
``````

### Parameters

`a (array)` It defines the input data for which the kurtosis is calculated.
`axis (int)` It defines the axis along which the kurtosis of the input data is calculated. The default value of this parameter is `0`. If the value is `None`, then the function simply computes over the whole input data.
`fisher (bool)` A boolean parameter. If the value of this parameter is `True`, then Fisher’s definition i.e `normal ==> 0.0` is used. And if the value of the parameter is `False`, then Pearson’s definition i.e `normal ==> 3.0` is used.
`bias (bool)` This is also a boolean parameter. If the value of this parameter is `False`, then all the calculations are corrected for the statistical bias.
`nan_policy` This parameter decides how to deal when there are NaN values in the input data. There are three decision parameters in the parameter, `propagate`, `raise`, `omit`. `propagate` simply returns the NaN value, `raise` returns an error and `omit` simply ignores the NaN values and the function continues with computation. These decision parameters are defined in single quotes `''`. The default value of this parameter is `propagate`.

## Example of Kurtosis

``````from scipy.stats import kurtosis
import numpy as np
import pylab as p

a = np.linspace( -10, 10, 2000 )
b = 1/(np.sqrt(2*np.pi)) * np.exp( -0.5*(a)**2  )

p.plot(a, b, '.')

print( 'Kurtosis value for the given normal distribution :', kurtosis(b))

print( 'Kurtosis value for the given normal distribution :', kurtosis(b, fisher = False))

print( 'Kurtosis value for the given normal distribution :', kurtosis(b, fisher = True, bias = False))
``````

Output: ``````Kurtosis value for the given normal distribution : 3.399361267205304
Kurtosis value for the given normal distribution : 6.399361267205304
Kurtosis value for the given normal distribution : 3.4108810035523636
``````
Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

## Related Article - Scipy Stats

• Scipy stats.sem Function
• Scipy stats.normaltest Fucntion