flopscope.

flopscope.numpy.random.RandomState.logistic

fnp.random.RandomState.logistic(self, loc=0.0, scale=1.0, size=None)

Draw samples from a logistic distribution.

Adapted from NumPy docs np.random.RandomState.logistic

Arearandom
Typecounted
Cost
numel(output)\text{numel}(\text{output})
Flopscope Context

Legacy logistic sampler; cost = numel(output).

Samples are drawn from a logistic distribution with specified parameters, loc (location or mean, also median), and scale (>0).

Note.

New code should use the logistic method of a Generator instance instead; please see the random-quick-start.

Parameters

loc:float or array_like of floats, optional

Parameter of the distribution. Default is 0.

scale:float or array_like of floats, optional

Parameter of the distribution. Must be non-negative. Default is 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 loc and scale are both scalars. Otherwise, flops.broadcast(loc, scale).size samples are drawn.

Returns

out:ndarray or scalar

Drawn samples from the parameterized logistic distribution.

See also

Notes

The probability density for the Logistic distribution is

P(x)=P(x)=e(xμ)/ss(1+e(xμ)/s)2,P(x) = P(x) = \frac{e^{-(x-\mu)/s}}{s(1+e^{-(x-\mu)/s})^2},

where μ\mu = location and ss = scale.

The Logistic distribution is used in Extreme Value problems where it can act as a mixture of Gumbel distributions, in Epidemiology, and by the World Chess Federation (FIDE) where it is used in the Elo ranking system, assuming the performance of each player is a logistically distributed random variable.

References

footnote
1

Reiss, R.-D. and Thomas M. (2001), "Statistical Analysis of
Extreme Values, from Insurance, Finance, Hydrology and Other
Fields," Birkhauser Verlag, Basel, pp 132-133.
footnote
2

Weisstein, Eric W. "Logistic Distribution." From
MathWorld--A Wolfram Web Resource.
https://mathworld.wolfram.com/LogisticDistribution.html
footnote
3

Wikipedia, "Logistic-distribution",
https://en.wikipedia.org/wiki/Logistic_distribution

Examples

Draw samples from the distribution:

>>> loc, scale = 10, 1
>>> s = flops.random.logistic(loc, scale, 10000)
>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, bins=50)

# plot against distribution

>>> def logist(x, loc, scale):
... return flops.exp((loc-x)/scale)/(scale*(1+flops.exp((loc-x)/scale))**2)
>>> lgst_val = logist(bins, loc, scale)
>>> plt.plot(bins, lgst_val * count.max() / lgst_val.max())
>>> plt.show()