如何在Python中生成具有给定均值,方差,偏斜和峰度的分布?

时间:2013-10-26 07:59:42

标签: python numpy scipy distribution

  

random.gauss(mu,sigma)

上面是一个允许从给定均值和方差的正态分布中随机抽取数字的函数。但是,我们如何从仅由两个第一时刻定义的正态分布中绘制值?

类似的东西:

  

random.gauss(mu,sigma,skew,kurtosis)

2 个答案:

答案 0 :(得分:4)

使用scipy怎么样?您可以从continuous distributions in the scipy.stats library中选择所需的发布内容。

广义伽玛函数具有非零偏斜和峰度,但您需要做一些工作来确定用于指定分布的参数以获得特定的均值,方差,偏斜和峰度。这里有一些代码可以帮助您入门。

import scipy.stats
import matplotlib.pyplot as plt
distribution = scipy.stats.norm(loc=100,scale=5)
sample = distribution.rvs(size=10000)
plt.hist(sample)
plt.show()
print distribution.stats('mvsk')

显示正态分布的10,000个元素样本的直方图,平均值为100,方差为25,并打印分布的统计信息:

(array(100.0), array(25.0), array(0.0), array(0.0))

用广义伽玛分布代替正态分布

distribution = scipy.stats.gengamma(100, 70, loc=50, scale=10)

你得到统计数据[均值,方差,偏斜,峰度] (array(60.67925117494595), array(0.00023388203873597746), array(-0.09588807605341435), array(-0.028177799805207737))

答案 1 :(得分:3)

尝试使用它:

http://statsmodels.sourceforge.net/devel/generated/statsmodels.sandbox.distributions.extras.pdf_mvsk.html#statsmodels.sandbox.distributions.extras.pdf_mvsk

  

返回高斯扩展的pdf函数,给出第1个,第2个列表   时刻和倾斜以及费舍尔(多余)峰度。

     

参数:mvsk:mu,mc2,skew,kurt的列表

对我来说很好看。该页面上有源链接。

哦,这是另一个指向我的StackOverflow问题: Apply kurtosis to a distribution in python