mars.tensor.random.standard_cauchy¶

mars.tensor.random.
standard_cauchy
(size=None, chunk_size=None, gpu=None, dtype=None)[source]¶ Draw samples from a standard Cauchy distribution with mode = 0.
Also known as the Lorentz distribution.
 Parameters
size (int or tuple of ints, optional) – Output shape. If the given shape is, e.g.,
(m, n, k)
, thenm * n * k
samples are drawn. Default is None, in which case a single value is returned.chunk_size (int or tuple of int or tuple of ints, optional) – Desired chunk size on each dimension
gpu (bool, optional) – Allocate the tensor on GPU if True, False as default
dtype (datatype, optional) – Datatype of the returned tensor.
 Returns
samples – The drawn samples.
 Return type
Tensor or scalar
Notes
The probability density function for the full Cauchy distribution is
\[P(x; x_0, \gamma) = \frac{1}{\pi \gamma \bigl[ 1+ (\frac{xx_0}{\gamma})^2 \bigr] }\]and the Standard Cauchy distribution just sets \(x_0=0\) and \(\gamma=1\)
The Cauchy distribution arises in the solution to the driven harmonic oscillator problem, and also describes spectral line broadening. It also describes the distribution of values at which a line tilted at a random angle will cut the x axis.
When studying hypothesis tests that assume normality, seeing how the tests perform on data from a Cauchy distribution is a good indicator of their sensitivity to a heavytailed distribution, since the Cauchy looks very much like a Gaussian distribution, but with heavier tails.
References
 1
NIST/SEMATECH eHandbook of Statistical Methods, “Cauchy Distribution”, http://www.itl.nist.gov/div898/handbook/eda/section3/eda3663.htm
 2
Weisstein, Eric W. “Cauchy Distribution.” From MathWorld–A Wolfram Web Resource. http://mathworld.wolfram.com/CauchyDistribution.html
 3
Wikipedia, “Cauchy distribution” http://en.wikipedia.org/wiki/Cauchy_distribution
Examples
Draw samples and plot the distribution:
>>> import mars.tensor as mt >>> import matplotlib.pyplot as plt
>>> s = mt.random.standard_cauchy(1000000) >>> s = s[(s>25) & (s<25)] # truncate distribution so it plots well >>> plt.hist(s.execute(), bins=100) >>> plt.show()