Movatterモバイル変換


[0]ホーム

URL:


SciPy

numpy.random.lognormal

numpy.random.lognormal(mean=0.0,sigma=1.0,size=None)

Draw samples from a log-normal distribution.

Draw samples from a log-normal distribution with specified mean,standard deviation, and array shape. Note that the mean and standarddeviation are not the values for the distribution itself, but of theunderlying normal distribution it is derived from.

Parameters:
mean:float or array_like of floats, optional

Mean value of the underlying normal distribution. Default is 0.

sigma:float or array_like of floats, optional

Standard deviation of the underlying normal distribution. Shouldbe greater than zero. Default is 1.

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. If size isNone (default),a single value is returned ifmean andsigma are both scalars.Otherwise,np.broadcast(mean,sigma).size samples are drawn.

Returns:
out:ndarray or scalar

Drawn samples from the parameterized log-normal distribution.

See also

scipy.stats.lognorm
probability density function, distribution, cumulative density function, etc.

Notes

A variablex has a log-normal distribution iflog(x) is normallydistributed. The probability density function for the log-normaldistribution is:

p(x) = \frac{1}{\sigma x \sqrt{2\pi}}e^{(-\frac{(ln(x)-\mu)^2}{2\sigma^2})}

where\mu is the mean and\sigma is the standarddeviation of the normally distributed logarithm of the variable.A log-normal distribution results if a random variable is theproductof a large number of independent, identically-distributed variables inthe same way that a normal distribution results if the variable is thesum of a large number of independent, identically-distributedvariables.

References

[1]Limpert, E., Stahel, W. A., and Abbt, M., “Log-normalDistributions across the Sciences: Keys and Clues,”BioScience, Vol. 51, No. 5, May, 2001.http://stat.ethz.ch/~stahel/lognormal/bioscience.pdf
[2]Reiss, R.D. and Thomas, M., “Statistical Analysis of ExtremeValues,” Basel: Birkhauser Verlag, 2001, pp. 31-32.

Examples

Draw samples from the distribution:

>>>mu,sigma=3.,1.# mean and standard deviation>>>s=np.random.lognormal(mu,sigma,1000)

Display the histogram of the samples, along withthe probability density function:

>>>importmatplotlib.pyplotasplt>>>count,bins,ignored=plt.hist(s,100,density=True,align='mid')
>>>x=np.linspace(min(bins),max(bins),10000)>>>pdf=(np.exp(-(np.log(x)-mu)**2/(2*sigma**2)).../(x*sigma*np.sqrt(2*np.pi)))
>>>plt.plot(x,pdf,linewidth=2,color='r')>>>plt.axis('tight')>>>plt.show()
../../_images/numpy-random-lognormal-1_00_00.png

Demonstrate that taking the products of random samples from a uniformdistribution can be fit well by a log-normal probability densityfunction.

>>># Generate a thousand samples: each is the product of 100 random>>># values, drawn from a normal distribution.>>>b=[]>>>foriinrange(1000):...a=10.+np.random.random(100)...b.append(np.product(a))
>>>b=np.array(b)/np.min(b)# scale values to be positive>>>count,bins,ignored=plt.hist(b,100,density=True,align='mid')>>>sigma=np.std(np.log(b))>>>mu=np.mean(np.log(b))
>>>x=np.linspace(min(bins),max(bins),10000)>>>pdf=(np.exp(-(np.log(x)-mu)**2/(2*sigma**2)).../(x*sigma*np.sqrt(2*np.pi)))
>>>plt.plot(x,pdf,color='r',linewidth=2)>>>plt.show()
../../_images/numpy-random-lognormal-1_01_00.png

Previous topic

numpy.random.logistic

Next topic

numpy.random.logseries

Quick search

  • © Copyright 2008-2018, The SciPy community.
  • Last updated on Jul 24, 2018.
  • Created usingSphinx 1.6.6.

[8]ページ先頭

©2009-2025 Movatter.jp