scipy.stats.circvar#

scipy.stats.circvar(samples, high=6.283185307179586, low=0, axis=None, nan_policy='propagate')[source]#

Compute the circular variance for samples assumed to be in a range.

Parameters
samplesarray_like

Input array.

highfloat or int, optional

High boundary for the sample range. Default is 2*pi.

lowfloat or int, optional

Low boundary for the sample range. Default is 0.

axisint, optional

Axis along which variances are computed. The default is to compute the variance of the flattened array.

nan_policy{‘propagate’, ‘raise’, ‘omit’}, optional

Defines how to handle when input contains nan. ‘propagate’ returns nan, ‘raise’ throws an error, ‘omit’ performs the calculations ignoring nan values. Default is ‘propagate’.

Returns
circvarfloat

Circular variance.

Notes

This uses the following definition of circular variance: 1-R, where R is the mean resultant vector. The returned value is in the range [0, 1], 0 standing for no variance, and 1 for a large variance. In the limit of small angles, this value is similar to half the ‘linear’ variance.

References

..[1] Fisher, N.I. Statistical analysis of circular data. Cambridge

University Press, 1993.

Examples

>>> from scipy.stats import circvar
>>> circvar([0, 2*np.pi/3, 5*np.pi/3])
0.6666666666666665