mars.tensor.random.
logseries
Draw samples from a logarithmic series distribution.
Samples are drawn from a log series distribution with specified shape parameter, 0 < p < 1.
p
p (float or array_like of floats) – Shape parameter for the distribution. Must be in the range (0, 1).
size (int or tuple of ints, optional) – Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn. If size is None (default), a single value is returned if p is a scalar. Otherwise, np.array(p).size samples are drawn.
(m, n, k)
m * n * k
None
np.array(p).size
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 (data-type, optional) – Data-type of the returned tensor.
out – Drawn samples from the parameterized logarithmic series distribution.
Tensor or scalar
See also
scipy.stats.logser
probability density function, distribution or cumulative density function, etc.
Notes
The probability density for the Log Series distribution is
where p = probability.
The log series distribution is frequently used to represent species richness and occurrence, first proposed by Fisher, Corbet, and Williams in 1943 [2]. It may also be used to model the numbers of occupants seen in cars [3].
References
Buzas, Martin A.; Culver, Stephen J., Understanding regional species diversity through the log series distribution of occurrences: BIODIVERSITY RESEARCH Diversity & Distributions, Volume 5, Number 5, September 1999 , pp. 187-195(9).
Fisher, R.A,, A.S. Corbet, and C.B. Williams. 1943. The relation between the number of species and the number of individuals in a random sample of an animal population. Journal of Animal Ecology, 12:42-58.
D. J. Hand, F. Daly, D. Lunn, E. Ostrowski, A Handbook of Small Data Sets, CRC Press, 1994.
Wikipedia, “Logarithmic distribution”, http://en.wikipedia.org/wiki/Logarithmic_distribution
Examples
Draw samples from the distribution:
>>> import mars.tensor as mt >>> import matplotlib.pyplot as plt
>>> a = .6 >>> s = mt.random.logseries(a, 10000) >>> count, bins, ignored = plt.hist(s.execute())
# plot against distribution
>>> def logseries(k, p): ... return -p**k/(k*mt.log(1-p)) >>> plt.plot(bins, (logseries(bins, a)*count.max()/ ... logseries(bins, a).max()).execute(), 'r') >>> plt.show()